Version Description
- The account renewal payment will take into account any remaining time (when the user's level is using a duration type expiry).
- The members can now user their email address (instead of username) and password to log into the site. The username field of the member login form will accept either the email address or the username.
- The set_user_role action hook will not be triggered by the plugin as the wp_update_user() function will take care of it automatically.
Download this release
Release Info
Developer | mra13 |
Plugin | Simple Membership |
Version | 3.3.8 |
Comparing to | |
See all releases |
Code changes from version 3.3.6 to 3.3.8
- classes/class.simple-wp-membership.php +1 -1
- classes/class.swpm-auth.php +14 -5
- classes/class.swpm-log.php +3 -3
- classes/class.swpm-membership-level-utils.php +0 -10
- classes/class.swpm-membership-level.php +20 -3
- classes/class.swpm-registration.php +1 -1
- classes/class.swpm-transactions.php +1 -1
- classes/class.swpm-utils-member.php +62 -2
- classes/class.swpm-utils-membership-level.php +9 -0
- classes/class.swpm-utils.php +39 -21
- images/addons/swpm-aweber-integration-addon.png +0 -0
- images/addons/swpm-member-payments-addon.png +0 -0
- ipn/swpm_handle_pp_ipn.php +6 -20
- ipn/swpm_handle_subsc_ipn.php +84 -29
- languages/swpm-it_IT.mo +0 -0
- languages/swpm-it_IT.po +1334 -0
- readme.txt +13 -1
- simple-wp-membership.php +2 -2
- views/admin_add_ons_page.php +16 -0
- views/login.php +1 -1
classes/class.simple-wp-membership.php
CHANGED
@@ -3,6 +3,7 @@
|
|
3 |
include_once('class.swpm-utils-misc.php');
|
4 |
include_once('class.swpm-utils.php');
|
5 |
include_once('class.swpm-utils-member.php');
|
|
|
6 |
include_once('class.swpm-utils-template.php');
|
7 |
include_once('class.swpm-init-time-tasks.php');
|
8 |
include_once('class.swpm-comment-form-related.php');
|
@@ -24,7 +25,6 @@ include_once('class.swpm-front-registration.php');
|
|
24 |
include_once('class.swpm-admin-registration.php');
|
25 |
include_once('class.swpm-membership-level.php');
|
26 |
include_once('class.swpm-membership-level-custom.php');
|
27 |
-
include_once('class.swpm-membership-level-utils.php');
|
28 |
include_once('class.swpm-permission-collection.php');
|
29 |
include_once('class.swpm-auth-permission-collection.php');
|
30 |
include_once('class.swpm-transactions.php');
|
3 |
include_once('class.swpm-utils-misc.php');
|
4 |
include_once('class.swpm-utils.php');
|
5 |
include_once('class.swpm-utils-member.php');
|
6 |
+
include_once('class.swpm-utils-membership-level.php');
|
7 |
include_once('class.swpm-utils-template.php');
|
8 |
include_once('class.swpm-init-time-tasks.php');
|
9 |
include_once('class.swpm-comment-form-related.php');
|
25 |
include_once('class.swpm-admin-registration.php');
|
26 |
include_once('class.swpm-membership-level.php');
|
27 |
include_once('class.swpm-membership-level-custom.php');
|
|
|
28 |
include_once('class.swpm-permission-collection.php');
|
29 |
include_once('class.swpm-auth-permission-collection.php');
|
30 |
include_once('class.swpm-transactions.php');
|
classes/class.swpm-auth.php
CHANGED
@@ -35,10 +35,10 @@ class SwpmAuth {
|
|
35 |
global $wpdb;
|
36 |
$swpm_password = empty($pass) ? filter_input(INPUT_POST, 'swpm_password') : $pass;
|
37 |
$swpm_user_name = empty($user) ? apply_filters('swpm_user_name', filter_input(INPUT_POST, 'swpm_user_name')) : $user;
|
38 |
-
|
39 |
if (!empty($swpm_user_name) && !empty($swpm_password)) {
|
40 |
//SWPM member login request.
|
41 |
-
|
42 |
//First, lets make sure this user is not already logged into the site as an "Admin" user. We don't want to override that admin login session.
|
43 |
if (current_user_can('administrator')) {
|
44 |
//This user is logged in as ADMIN then trying to do another login as a member. Stop the login request processing (we don't want to override your admin login session).
|
@@ -50,10 +50,20 @@ class SwpmAuth {
|
|
50 |
wp_die($error_msg);
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
//Lets process the request. Check username and password
|
54 |
$user = sanitize_user($swpm_user_name);
|
55 |
$pass = trim($swpm_password);
|
56 |
-
SwpmLog::log_auth_debug("
|
57 |
|
58 |
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl WHERE user_name = %s";
|
59 |
$userData = $wpdb->get_row($wpdb->prepare($query, $user));
|
@@ -289,8 +299,7 @@ class SwpmAuth {
|
|
289 |
|
290 |
public function get_expire_date() {
|
291 |
if ($this->isLoggedIn) {
|
292 |
-
return SwpmUtils::
|
293 |
-
$this->get('subscription_starts'), $this->get('subscription_period'), $this->get('subscription_duration_type'));
|
294 |
}
|
295 |
return "";
|
296 |
}
|
35 |
global $wpdb;
|
36 |
$swpm_password = empty($pass) ? filter_input(INPUT_POST, 'swpm_password') : $pass;
|
37 |
$swpm_user_name = empty($user) ? apply_filters('swpm_user_name', filter_input(INPUT_POST, 'swpm_user_name')) : $user;
|
38 |
+
|
39 |
if (!empty($swpm_user_name) && !empty($swpm_password)) {
|
40 |
//SWPM member login request.
|
41 |
+
|
42 |
//First, lets make sure this user is not already logged into the site as an "Admin" user. We don't want to override that admin login session.
|
43 |
if (current_user_can('administrator')) {
|
44 |
//This user is logged in as ADMIN then trying to do another login as a member. Stop the login request processing (we don't want to override your admin login session).
|
50 |
wp_die($error_msg);
|
51 |
}
|
52 |
|
53 |
+
if(is_email($swpm_user_name)){//User is trying to log-in using an email address
|
54 |
+
$email = sanitize_email($swpm_user_name);
|
55 |
+
$query = $wpdb->prepare("SELECT user_name FROM " . $wpdb->prefix . "swpm_members_tbl WHERE email = %s", $email);
|
56 |
+
$username = $wpdb->get_var($query);
|
57 |
+
if($username){//Found a user record
|
58 |
+
$swpm_user_name = $username;//Grab the usrename value so it can be used in the authentication process.
|
59 |
+
SwpmLog::log_auth_debug("Authentication request using email address: " . $email.', Found a user record with username: '.$swpm_user_name, true);
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
//Lets process the request. Check username and password
|
64 |
$user = sanitize_user($swpm_user_name);
|
65 |
$pass = trim($swpm_password);
|
66 |
+
SwpmLog::log_auth_debug("Authentication request - Username: " . $swpm_user_name, true);
|
67 |
|
68 |
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl WHERE user_name = %s";
|
69 |
$userData = $wpdb->get_row($wpdb->prepare($query, $user));
|
299 |
|
300 |
public function get_expire_date() {
|
301 |
if ($this->isLoggedIn) {
|
302 |
+
return SwpmUtils::get_formatted_expiry_date($this->get('subscription_starts'), $this->get('subscription_period'), $this->get('subscription_duration_type'));
|
|
|
303 |
}
|
304 |
return "";
|
305 |
}
|
classes/class.swpm-log.php
CHANGED
@@ -64,7 +64,7 @@ class SwpmLog {
|
|
64 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
65 |
|
66 |
// Timestamp
|
67 |
-
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS
|
68 |
if ($end) {
|
69 |
$text .= "\n------------------------------------------------------------------\n\n";
|
70 |
}
|
@@ -85,7 +85,7 @@ class SwpmLog {
|
|
85 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log-auth.txt';
|
86 |
|
87 |
// Timestamp
|
88 |
-
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS
|
89 |
if ($end) {
|
90 |
$text .= "\n------------------------------------------------------------------\n\n";
|
91 |
}
|
@@ -107,7 +107,7 @@ class SwpmLog {
|
|
107 |
continue;
|
108 |
}
|
109 |
|
110 |
-
$text = '[' . date('m/d/Y g:i A') . '] - SUCCESS
|
111 |
$text .= "\n------------------------------------------------------------------\n\n";
|
112 |
$fp = fopen($logfile, 'w');
|
113 |
if ($fp != FALSE) {
|
64 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
65 |
|
66 |
// Timestamp
|
67 |
+
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS: ' : 'FAILURE: ') . $message . "\n";
|
68 |
if ($end) {
|
69 |
$text .= "\n------------------------------------------------------------------\n\n";
|
70 |
}
|
85 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log-auth.txt';
|
86 |
|
87 |
// Timestamp
|
88 |
+
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS: ' : 'FAILURE: ') . $message . "\n";
|
89 |
if ($end) {
|
90 |
$text .= "\n------------------------------------------------------------------\n\n";
|
91 |
}
|
107 |
continue;
|
108 |
}
|
109 |
|
110 |
+
$text = '[' . date('m/d/Y g:i A') . '] - SUCCESS: Log file reset';
|
111 |
$text .= "\n------------------------------------------------------------------\n\n";
|
112 |
$fp = fopen($logfile, 'w');
|
113 |
if ($fp != FALSE) {
|
classes/class.swpm-membership-level-utils.php
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* BMembershipLevelUtils
|
5 |
-
*
|
6 |
-
* @author nur
|
7 |
-
*/
|
8 |
-
class SwpmMembershipLevelUtils {
|
9 |
-
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
classes/class.swpm-membership-level.php
CHANGED
@@ -1,9 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* Description of
|
5 |
-
*
|
6 |
-
* @author nur
|
7 |
*/
|
8 |
class SwpmMembershipLevel {
|
9 |
|
@@ -25,6 +23,25 @@ class SwpmMembershipLevel {
|
|
25 |
return self::$_instance;
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
public function create_level() {
|
29 |
//Check we are on the admin end and user has management permission
|
30 |
SwpmMiscUtils::check_user_permission_and_is_admin('membership level creation');
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* Description of SwpmMembershipLevel
|
|
|
|
|
5 |
*/
|
6 |
class SwpmMembershipLevel {
|
7 |
|
23 |
return self::$_instance;
|
24 |
}
|
25 |
|
26 |
+
public static function get_level_duration_type_string($type){
|
27 |
+
$type_string = '';
|
28 |
+
switch($type){
|
29 |
+
case '0': $type_string = 'No Expiry or Until Cancelled';
|
30 |
+
break;
|
31 |
+
case '1': $type_string = 'Days';
|
32 |
+
break;
|
33 |
+
case '2': $type_string = 'Weeks';
|
34 |
+
break;
|
35 |
+
case '3': $type_string = 'Months';
|
36 |
+
break;
|
37 |
+
case '4': $type_string = 'Years';
|
38 |
+
break;
|
39 |
+
case '5': $type_string = 'Fixed Date';
|
40 |
+
break;
|
41 |
+
}
|
42 |
+
return $type_string;
|
43 |
+
}
|
44 |
+
|
45 |
public function create_level() {
|
46 |
//Check we are on the admin end and user has management permission
|
47 |
SwpmMiscUtils::check_user_permission_and_is_admin('membership level creation');
|
classes/class.swpm-registration.php
CHANGED
@@ -39,7 +39,7 @@ abstract class SwpmRegistration {
|
|
39 |
|
40 |
//Send notification email to the member
|
41 |
wp_mail(trim($email), $subject, $body, $headers);
|
42 |
-
SwpmLog::log_simple_debug('Member
|
43 |
|
44 |
if ($settings->get_value('enable-admin-notification-after-reg')) {
|
45 |
//Send notification email to the site admin
|
39 |
|
40 |
//Send notification email to the member
|
41 |
wp_mail(trim($email), $subject, $body, $headers);
|
42 |
+
SwpmLog::log_simple_debug('Member registration complete email sent to: '.$email.'. From email address value used: '.$from_address, true);
|
43 |
|
44 |
if ($settings->get_value('enable-admin-notification-after-reg')) {
|
45 |
//Send notification email to the site admin
|
classes/class.swpm-transactions.php
CHANGED
@@ -18,7 +18,7 @@ class SwpmTransactions {
|
|
18 |
$txn_data['last_name'] = $ipn_data['last_name'];
|
19 |
$txn_data['last_name'] = $ipn_data['last_name'];
|
20 |
$txn_data['ip_address'] = $ipn_data['ip'];
|
21 |
-
$txn_data['member_id'] = $
|
22 |
$txn_data['membership_level'] = $custom_var['subsc_ref'];
|
23 |
|
24 |
$txn_data['txn_date'] = $current_date;
|
18 |
$txn_data['last_name'] = $ipn_data['last_name'];
|
19 |
$txn_data['last_name'] = $ipn_data['last_name'];
|
20 |
$txn_data['ip_address'] = $ipn_data['ip'];
|
21 |
+
$txn_data['member_id'] = $custom_var['swpm_id'];
|
22 |
$txn_data['membership_level'] = $custom_var['subsc_ref'];
|
23 |
|
24 |
$txn_data['txn_date'] = $current_date;
|
classes/class.swpm-utils-member.php
CHANGED
@@ -58,7 +58,12 @@ class SwpmMemberUtils {
|
|
58 |
return apply_filters('swpm_get_member_field_by_id', $default, $id, $field);
|
59 |
}
|
60 |
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
62 |
public static function get_user_by_id($swpm_id) {
|
63 |
//Retrieves the SWPM user record for the given member ID
|
64 |
global $wpdb;
|
@@ -86,5 +91,60 @@ class SwpmMemberUtils {
|
|
86 |
public static function is_valid_user_name($user_name){
|
87 |
return preg_match("/^[a-zA-Z0-9!@#$%&+\/=?^_`{|}~\.-]+$/", $user_name)== 1;
|
88 |
}
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
}
|
58 |
return apply_filters('swpm_get_member_field_by_id', $default, $id, $field);
|
59 |
}
|
60 |
|
61 |
+
public static function get_expiry_date_timestamp_by_user_id($swpm_id){
|
62 |
+
$swpm_user = SwpmMemberUtils::get_user_by_id($swpm_id);
|
63 |
+
$expiry_timestamp = SwpmUtils::get_expiration_timestamp($swpm_user);
|
64 |
+
return $expiry_timestamp;
|
65 |
+
}
|
66 |
+
|
67 |
public static function get_user_by_id($swpm_id) {
|
68 |
//Retrieves the SWPM user record for the given member ID
|
69 |
global $wpdb;
|
91 |
public static function is_valid_user_name($user_name){
|
92 |
return preg_match("/^[a-zA-Z0-9!@#$%&+\/=?^_`{|}~\.-]+$/", $user_name)== 1;
|
93 |
}
|
94 |
+
|
95 |
+
/*
|
96 |
+
* Use this function to update or set account status of a member easily.
|
97 |
+
*/
|
98 |
+
public static function update_account_state($member_id, $new_status = 'active') {
|
99 |
+
global $wpdb;
|
100 |
+
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
101 |
+
|
102 |
+
SwpmLog::log_simple_debug("Updating the account status value of member (" . $member_id . ") to: " . $new_status, true);
|
103 |
+
$query = $wpdb->prepare("UPDATE $members_table_name SET account_state=%s WHERE member_id=%s", $new_status, $member_id);
|
104 |
+
$resultset = $wpdb->query($query);
|
105 |
+
}
|
106 |
+
|
107 |
+
|
108 |
+
/*
|
109 |
+
* Calculates the Access Starts date value considering the level and current expiry. Useful for after payment member profile update.
|
110 |
+
*/
|
111 |
+
public static function calculate_access_start_date_for_account_update($args){
|
112 |
+
$swpm_id = $args['swpm_id'];
|
113 |
+
$membership_level = $args['membership_level'];
|
114 |
+
$old_membership_level = $args['old_membership_level'];
|
115 |
+
|
116 |
+
$subscription_starts = (date("Y-m-d"));
|
117 |
+
if($membership_level == $old_membership_level){
|
118 |
+
//Payment for the same membership level (renewal).
|
119 |
+
|
120 |
+
//Algorithm - ONLY set the $subscription_starts date to current expiry date if the current expiry date is in the future.
|
121 |
+
//Otherwise set $subscription_starts to TODAY.
|
122 |
+
$expiry_timestamp = SwpmMemberUtils::get_expiry_date_timestamp_by_user_id($swpm_id);
|
123 |
+
if($expiry_timestamp > time()){
|
124 |
+
//Account is not expired. Expiry date is in the future.
|
125 |
+
$level_row = SwpmUtils::get_membership_level_row_by_id($membership_level);
|
126 |
+
$subs_duration_type = $level_row->subscription_duration_type;
|
127 |
+
if($subs_duration_type == SwpmMembershipLevel::NO_EXPIRY){
|
128 |
+
//No expiry type level.
|
129 |
+
//Use todays date for $subscription_starts date parameter.
|
130 |
+
} else if ($subs_duration_type == SwpmMembershipLevel::FIXED_DATE){
|
131 |
+
//Fixed date expiry level.
|
132 |
+
//Use todays date for $subscription_starts date parameter.
|
133 |
+
} else {
|
134 |
+
//Duration expiry level.
|
135 |
+
//Set the $subscription_starts date to the current expiry date so the renewal time starts from then.
|
136 |
+
$subscription_starts = date('Y-m-d', $expiry_timestamp);
|
137 |
+
}
|
138 |
+
} else {
|
139 |
+
//Account is already expired.
|
140 |
+
//Use todays date for $subscription_starts date parameter.
|
141 |
+
}
|
142 |
+
} else {
|
143 |
+
//Payment for a NEW membership level (upgrade).
|
144 |
+
//Use todays date for $subscription_starts date parameter.
|
145 |
+
}
|
146 |
+
|
147 |
+
return $subscription_starts;
|
148 |
+
}
|
149 |
+
|
150 |
}
|
classes/class.swpm-utils-membership-level.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This class will contain various utility functions for the membership access level.
|
5 |
+
*/
|
6 |
+
|
7 |
+
class SwpmMembershipLevelUtils {
|
8 |
+
|
9 |
+
}
|
classes/class.swpm-utils.php
CHANGED
@@ -69,8 +69,7 @@ abstract class SwpmUtils {
|
|
69 |
if (SwpmMembershipLevel::FIXED_DATE == $permission->get('subscription_duration_type')) {
|
70 |
return strtotime($permission->get('subscription_period'));
|
71 |
}
|
72 |
-
$days = self::calculate_subscription_period_days(
|
73 |
-
$permission->get('subscription_period'), $permission->get('subscription_duration_type'));
|
74 |
if ($days == 'noexpire') {
|
75 |
return PHP_INT_MAX; // which is equivalent to
|
76 |
}
|
@@ -79,9 +78,33 @@ abstract class SwpmUtils {
|
|
79 |
|
80 |
public static function is_subscription_expired($user) {
|
81 |
$expiration_timestamp = SwpmUtils::get_expiration_timestamp($user);
|
82 |
-
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
public static function gender_dropdown($selected = 'not specified') {
|
86 |
return '<option ' . ((strtolower($selected) == 'male') ? 'selected="selected"' : "") . ' value="male">Male</option>' .
|
87 |
'<option ' . ((strtolower($selected) == 'female') ? 'selected="selected"' : "") . ' value="female">Female</option>' .
|
@@ -121,6 +144,13 @@ abstract class SwpmUtils {
|
|
121 |
return $wpdb->get_col($query);
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
public static function membership_level_id_exists($level_id){
|
125 |
//Returns true if the specified membership level exists in the system. Returns false if the level has been deleted (or doesn't exist).
|
126 |
$all_level_ids = SwpmUtils::get_all_membership_level_ids();
|
@@ -191,8 +221,13 @@ abstract class SwpmUtils {
|
|
191 |
if (in_array('administrator', array_keys((array) $caps))) {
|
192 |
return;
|
193 |
}
|
194 |
-
|
|
|
|
|
|
|
|
|
195 |
wp_update_user(array('ID' => $wp_user_id, 'role' => $role));
|
|
|
196 |
$roles = new WP_Roles();
|
197 |
$level = $roles->roles[$role]['capabilities'];
|
198 |
if (isset($level['level_10']) && $level['level_10']) {
|
@@ -316,23 +351,6 @@ abstract class SwpmUtils {
|
|
316 |
return current_user_can('manage_options');
|
317 |
}
|
318 |
|
319 |
-
public static function get_expire_date($start_date, $subscription_duration, $subscription_duration_type) {
|
320 |
-
if ($subscription_duration_type == SwpmMembershipLevel::FIXED_DATE) {
|
321 |
-
//Membership will expire after a fixed date.
|
322 |
-
return SwpmUtils::get_formatted_date_according_to_wp_settings($subscription_duration);
|
323 |
-
}
|
324 |
-
|
325 |
-
$expires = self::calculate_subscription_period_days($subscription_duration, $subscription_duration_type);
|
326 |
-
if ($expires == 'noexpire') {
|
327 |
-
//Membership is set to no expiry or until cancelled.
|
328 |
-
return SwpmUtils::_('Never');
|
329 |
-
}
|
330 |
-
|
331 |
-
//Membership is set to a duration expiry settings.
|
332 |
-
|
333 |
-
return date(get_option('date_format'), strtotime($start_date . ' ' . $expires . ' days'));
|
334 |
-
}
|
335 |
-
|
336 |
/*
|
337 |
* Formats the given date value according to the WP date format settings. This function is useful for displaying a human readable date value to the user.
|
338 |
*/
|
69 |
if (SwpmMembershipLevel::FIXED_DATE == $permission->get('subscription_duration_type')) {
|
70 |
return strtotime($permission->get('subscription_period'));
|
71 |
}
|
72 |
+
$days = self::calculate_subscription_period_days($permission->get('subscription_period'), $permission->get('subscription_duration_type'));
|
|
|
73 |
if ($days == 'noexpire') {
|
74 |
return PHP_INT_MAX; // which is equivalent to
|
75 |
}
|
78 |
|
79 |
public static function is_subscription_expired($user) {
|
80 |
$expiration_timestamp = SwpmUtils::get_expiration_timestamp($user);
|
81 |
+
if($expiration_timestamp < time()){
|
82 |
+
//Account expired.
|
83 |
+
return true;
|
84 |
+
}
|
85 |
+
return false;
|
86 |
}
|
87 |
|
88 |
+
/*
|
89 |
+
* Returns a formatted expiry date string (of a member). This can be useful to echo the date value.
|
90 |
+
*/
|
91 |
+
public static function get_formatted_expiry_date($start_date, $subscription_duration, $subscription_duration_type) {
|
92 |
+
if ($subscription_duration_type == SwpmMembershipLevel::FIXED_DATE) {
|
93 |
+
//Membership will expire after a fixed date.
|
94 |
+
return SwpmUtils::get_formatted_date_according_to_wp_settings($subscription_duration);
|
95 |
+
}
|
96 |
+
|
97 |
+
$expires = self::calculate_subscription_period_days($subscription_duration, $subscription_duration_type);
|
98 |
+
if ($expires == 'noexpire') {
|
99 |
+
//Membership is set to no expiry or until cancelled.
|
100 |
+
return SwpmUtils::_('Never');
|
101 |
+
}
|
102 |
+
|
103 |
+
//Membership is set to a duration expiry settings.
|
104 |
+
|
105 |
+
return date(get_option('date_format'), strtotime($start_date . ' ' . $expires . ' days'));
|
106 |
+
}
|
107 |
+
|
108 |
public static function gender_dropdown($selected = 'not specified') {
|
109 |
return '<option ' . ((strtolower($selected) == 'male') ? 'selected="selected"' : "") . ' value="male">Male</option>' .
|
110 |
'<option ' . ((strtolower($selected) == 'female') ? 'selected="selected"' : "") . ' value="female">Female</option>' .
|
144 |
return $wpdb->get_col($query);
|
145 |
}
|
146 |
|
147 |
+
public static function get_membership_level_row_by_id($level_id){
|
148 |
+
global $wpdb;
|
149 |
+
$query = $wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id=%d", $level_id);
|
150 |
+
$level_resultset = $wpdb->get_row($query);
|
151 |
+
return $level_resultset;
|
152 |
+
}
|
153 |
+
|
154 |
public static function membership_level_id_exists($level_id){
|
155 |
//Returns true if the specified membership level exists in the system. Returns false if the level has been deleted (or doesn't exist).
|
156 |
$all_level_ids = SwpmUtils::get_all_membership_level_ids();
|
221 |
if (in_array('administrator', array_keys((array) $caps))) {
|
222 |
return;
|
223 |
}
|
224 |
+
|
225 |
+
//No need to trigger this action hook as the wp_update_user() function will trigger it automatically.
|
226 |
+
//$old_roles = array();
|
227 |
+
//do_action('set_user_role', $wp_user_id, $role, $old_roles); //Trigger the action hook for other plugin(s)
|
228 |
+
|
229 |
wp_update_user(array('ID' => $wp_user_id, 'role' => $role));
|
230 |
+
|
231 |
$roles = new WP_Roles();
|
232 |
$level = $roles->roles[$role]['capabilities'];
|
233 |
if (isset($level['level_10']) && $level['level_10']) {
|
351 |
return current_user_can('manage_options');
|
352 |
}
|
353 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
/*
|
355 |
* Formats the given date value according to the WP date format settings. This function is useful for displaying a human readable date value to the user.
|
356 |
*/
|
images/addons/swpm-aweber-integration-addon.png
ADDED
Binary file
|
images/addons/swpm-member-payments-addon.png
ADDED
Binary file
|
ipn/swpm_handle_pp_ipn.php
CHANGED
@@ -57,21 +57,7 @@ class swpm_paypal_ipn_handler {
|
|
57 |
}
|
58 |
|
59 |
$custom = $this->ipn_data['custom'];
|
60 |
-
$
|
61 |
-
$customvariables = array();
|
62 |
-
$namevaluecombos = explode($delimiter, $custom);
|
63 |
-
foreach ($namevaluecombos as $keyval_unparsed)
|
64 |
-
{
|
65 |
-
$equalsignposition = strpos($keyval_unparsed, '=');
|
66 |
-
if ($equalsignposition === false)
|
67 |
-
{
|
68 |
-
$customvariables[$keyval_unparsed] = '';
|
69 |
-
continue;
|
70 |
-
}
|
71 |
-
$key = substr($keyval_unparsed, 0, $equalsignposition);
|
72 |
-
$value = substr($keyval_unparsed, $equalsignposition + 1);
|
73 |
-
$customvariables[$key] = $value;
|
74 |
-
}
|
75 |
|
76 |
//Handle refunds
|
77 |
if ($gross_total < 0)
|
@@ -89,13 +75,13 @@ class swpm_paypal_ipn_handler {
|
|
89 |
|
90 |
if (($transaction_type == "subscr_signup"))
|
91 |
{
|
92 |
-
$this->debug_log('Subscription signup IPN received...
|
93 |
// Code to handle the signup IPN for subscription
|
94 |
$subsc_ref = $customvariables['subsc_ref'];
|
95 |
|
96 |
if (!empty($subsc_ref))
|
97 |
{
|
98 |
-
$this->debug_log('
|
99 |
$swpm_id = $customvariables['swpm_id'];
|
100 |
swpm_handle_subsc_signup_stand_alone($this->ipn_data,$subsc_ref,$this->ipn_data['subscr_id'],$swpm_id);
|
101 |
//Handle customized subscription signup
|
@@ -105,8 +91,8 @@ class swpm_paypal_ipn_handler {
|
|
105 |
else if (($transaction_type == "subscr_cancel") || ($transaction_type == "subscr_eot") || ($transaction_type == "subscr_failed"))
|
106 |
{
|
107 |
// Code to handle the IPN for subscription cancellation
|
|
|
108 |
swpm_handle_subsc_cancel_stand_alone($this->ipn_data);
|
109 |
-
$this->debug_log('Subscription cancellation IPN received... nothing to do here(handled by the subscription IPN handler)',true);
|
110 |
return true;
|
111 |
}
|
112 |
else
|
@@ -163,11 +149,11 @@ class swpm_paypal_ipn_handler {
|
|
163 |
}
|
164 |
if ($transaction_type == "web_accept")
|
165 |
{
|
166 |
-
$this->debug_log('
|
167 |
swpm_handle_subsc_signup_stand_alone($this->ipn_data,$subsc_ref,$this->ipn_data['txn_id'],$swpm_id);
|
168 |
}
|
169 |
else if($transaction_type == "subscr_payment"){
|
170 |
-
$this->debug_log('
|
171 |
swpm_update_member_subscription_start_date_if_applicable($this->ipn_data);
|
172 |
}
|
173 |
}
|
57 |
}
|
58 |
|
59 |
$custom = $this->ipn_data['custom'];
|
60 |
+
$customvariables = SwpmTransactions::parse_custom_var($custom);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
//Handle refunds
|
63 |
if ($gross_total < 0)
|
75 |
|
76 |
if (($transaction_type == "subscr_signup"))
|
77 |
{
|
78 |
+
$this->debug_log('Subscription signup IPN received... (handled by the subscription IPN handler)',true);
|
79 |
// Code to handle the signup IPN for subscription
|
80 |
$subsc_ref = $customvariables['subsc_ref'];
|
81 |
|
82 |
if (!empty($subsc_ref))
|
83 |
{
|
84 |
+
$this->debug_log('Found a membership level ID. Creating member account...',true);
|
85 |
$swpm_id = $customvariables['swpm_id'];
|
86 |
swpm_handle_subsc_signup_stand_alone($this->ipn_data,$subsc_ref,$this->ipn_data['subscr_id'],$swpm_id);
|
87 |
//Handle customized subscription signup
|
91 |
else if (($transaction_type == "subscr_cancel") || ($transaction_type == "subscr_eot") || ($transaction_type == "subscr_failed"))
|
92 |
{
|
93 |
// Code to handle the IPN for subscription cancellation
|
94 |
+
$this->debug_log('Subscription cancellation IPN received... (handled by the subscription IPN handler)',true);
|
95 |
swpm_handle_subsc_cancel_stand_alone($this->ipn_data);
|
|
|
96 |
return true;
|
97 |
}
|
98 |
else
|
149 |
}
|
150 |
if ($transaction_type == "web_accept")
|
151 |
{
|
152 |
+
$this->debug_log('Transaction type: web_accept. Creating member account...',true);
|
153 |
swpm_handle_subsc_signup_stand_alone($this->ipn_data,$subsc_ref,$this->ipn_data['txn_id'],$swpm_id);
|
154 |
}
|
155 |
else if($transaction_type == "subscr_payment"){
|
156 |
+
$this->debug_log('Transaction type: subscr_payment. Checking if the member profile needed to be updated',true);
|
157 |
swpm_update_member_subscription_start_date_if_applicable($this->ipn_data);
|
158 |
}
|
159 |
}
|
ipn/swpm_handle_subsc_ipn.php
CHANGED
@@ -4,7 +4,6 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
|
|
4 |
global $wpdb;
|
5 |
$settings = SwpmSettings::get_instance();
|
6 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
7 |
-
$membership_level_table = $wpdb->prefix . "swpm_membership_tbl";
|
8 |
$membership_level = $subsc_ref;
|
9 |
$subscr_id = $unique_ref;
|
10 |
|
@@ -39,9 +38,8 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
|
|
39 |
swpm_debug_log_subsc("Modifying the existing membership profile... Member ID: " . $swpm_id, true);
|
40 |
|
41 |
//Upgrade the member account
|
42 |
-
$account_state = 'active'; //This is renewal or upgrade of a previously active account. So the status should be set to active
|
43 |
-
|
44 |
-
|
45 |
$resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where member_id=%d", $swpm_id), OBJECT);
|
46 |
if (!$resultset) {
|
47 |
swpm_debug_log_subsc("ERROR! Could not find a member account record for the given Member ID: " . $swpm_id, false);
|
@@ -49,7 +47,13 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
|
|
49 |
}
|
50 |
$old_membership_level = $resultset->membership_level;
|
51 |
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
$updatedb = $wpdb->prepare("UPDATE $members_table_name SET account_state=%s, membership_level=%d,subscription_starts=%s,subscr_id=%s WHERE member_id=%d", $account_state, $membership_level, $subscription_starts, $subscr_id, $swpm_id);
|
54 |
$results = $wpdb->query($updatedb);
|
55 |
do_action('swpm_membership_changed', array('member_id' => $swpm_id, 'from_level' => $old_membership_level, 'to_level' => $membership_level));
|
@@ -139,37 +143,88 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
|
|
139 |
swpm_debug_log_subsc("Member signup/upgrade completion email successfully sent to: " . $email, true);
|
140 |
}
|
141 |
|
|
|
|
|
|
|
142 |
function swpm_handle_subsc_cancel_stand_alone($ipn_data, $refund = false) {
|
143 |
-
|
144 |
-
$subscr_id = $ipn_data['parent_txn_id'];
|
145 |
-
swpm_debug_log_subsc("Refund notification check - check if a member account needs to be deactivated... parent_txn_id: " . $ipn_data['parent_txn_id'], true);
|
146 |
-
} else {
|
147 |
-
$subscr_id = $ipn_data['subscr_id'];
|
148 |
-
}
|
149 |
-
|
150 |
-
if (empty($subscr_id)) {
|
151 |
-
swpm_debug_log_subsc("No subscr_id associated with this transaction. Nothing to do here.", true);
|
152 |
-
return;
|
153 |
-
}
|
154 |
-
|
155 |
global $wpdb;
|
156 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
|
|
|
|
|
|
157 |
|
158 |
-
swpm_debug_log_subsc("
|
159 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
if ($resultset) {
|
161 |
-
//
|
|
|
162 |
$member_id = $resultset->member_id;
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
|
168 |
$ipn_data['member_id'] = $member_id;
|
169 |
do_action('swpm_subscription_payment_cancelled', $ipn_data);//Hook for recurring payment received
|
170 |
|
171 |
} else {
|
172 |
-
swpm_debug_log_subsc("No member found for
|
173 |
return;
|
174 |
}
|
175 |
}
|
@@ -177,13 +232,12 @@ function swpm_handle_subsc_cancel_stand_alone($ipn_data, $refund = false) {
|
|
177 |
function swpm_update_member_subscription_start_date_if_applicable($ipn_data) {
|
178 |
global $wpdb;
|
179 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
180 |
-
$membership_level_table = $wpdb->prefix . "swpm_membership_tbl";
|
181 |
$email = $ipn_data['payer_email'];
|
182 |
$subscr_id = $ipn_data['subscr_id'];
|
183 |
$account_state = SwpmSettings::get_instance()->get_value('default-account-status', 'active');
|
184 |
swpm_debug_log_subsc("Updating subscription start date if applicable for this subscription payment. Subscriber ID: " . $subscr_id . " Email: " . $email, true);
|
185 |
|
186 |
-
//We can also query using the email address
|
187 |
$query_db = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name WHERE subscr_id = %s", $subscr_id), OBJECT);
|
188 |
if ($query_db) {
|
189 |
$swpm_id = $query_db->member_id;
|
@@ -199,7 +253,8 @@ function swpm_update_member_subscription_start_date_if_applicable($ipn_data) {
|
|
199 |
$resultset = $wpdb->query($updatedb);
|
200 |
swpm_debug_log_subsc("Updated the member profile with current date as the subscription start date.", true);
|
201 |
} else {
|
202 |
-
swpm_debug_log_subsc("Did not find
|
|
|
203 |
}
|
204 |
}
|
205 |
|
@@ -213,7 +268,7 @@ function swpm_debug_log_subsc($message, $success, $end = false) {
|
|
213 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
214 |
|
215 |
// Timestamp
|
216 |
-
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS
|
217 |
if ($end) {
|
218 |
$text .= "\n------------------------------------------------------------------\n\n";
|
219 |
}
|
4 |
global $wpdb;
|
5 |
$settings = SwpmSettings::get_instance();
|
6 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
|
|
7 |
$membership_level = $subsc_ref;
|
8 |
$subscr_id = $unique_ref;
|
9 |
|
38 |
swpm_debug_log_subsc("Modifying the existing membership profile... Member ID: " . $swpm_id, true);
|
39 |
|
40 |
//Upgrade the member account
|
41 |
+
$account_state = 'active'; //This is renewal or upgrade of a previously active account. So the status should be set to active
|
42 |
+
|
|
|
43 |
$resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where member_id=%d", $swpm_id), OBJECT);
|
44 |
if (!$resultset) {
|
45 |
swpm_debug_log_subsc("ERROR! Could not find a member account record for the given Member ID: " . $swpm_id, false);
|
47 |
}
|
48 |
$old_membership_level = $resultset->membership_level;
|
49 |
|
50 |
+
//If the payment is for the same/existing membership level, then this is a renewal. Refresh the start date as appropriate.
|
51 |
+
$args = array('swpm_id' => $swpm_id, 'membership_level' => $membership_level, 'old_membership_level' => $old_membership_level);
|
52 |
+
$subscription_starts = SwpmMemberUtils::calculate_access_start_date_for_account_update($args);
|
53 |
+
$subscription_starts = apply_filters('swpm_account_update_subscription_starts', $subscription_starts, $args);
|
54 |
+
swpm_debug_log_subsc("Setting access starts date value to: " . $subscription_starts, true);
|
55 |
+
|
56 |
+
swpm_debug_log_subsc("Updating the current membership level (" . $old_membership_level . ") of this member to the newly paid level (" . $membership_level . ")", true);
|
57 |
$updatedb = $wpdb->prepare("UPDATE $members_table_name SET account_state=%s, membership_level=%d,subscription_starts=%s,subscr_id=%s WHERE member_id=%d", $account_state, $membership_level, $subscription_starts, $subscr_id, $swpm_id);
|
58 |
$results = $wpdb->query($updatedb);
|
59 |
do_action('swpm_membership_changed', array('member_id' => $swpm_id, 'from_level' => $old_membership_level, 'to_level' => $membership_level));
|
143 |
swpm_debug_log_subsc("Member signup/upgrade completion email successfully sent to: " . $email, true);
|
144 |
}
|
145 |
|
146 |
+
/*
|
147 |
+
* All in one function that can handle notification for refund, cancellation, end of term
|
148 |
+
*/
|
149 |
function swpm_handle_subsc_cancel_stand_alone($ipn_data, $refund = false) {
|
150 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
global $wpdb;
|
152 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
153 |
+
|
154 |
+
$customvariables = SwpmTransactions::parse_custom_var($ipn_data['custom']);
|
155 |
+
$swpm_id = $customvariables['swpm_id'];
|
156 |
|
157 |
+
swpm_debug_log_subsc("Refund/Cancellation check - lets see if a member account needs to be deactivated.", true);
|
158 |
+
//swpm_debug_log_subsc("Parent txn id: " . $ipn_data['parent_txn_id'] . ", Subscr ID: " . $ipn_data['subscr_id'] . ", SWPM ID: " . $swpm_id, true);
|
159 |
+
|
160 |
+
if(!empty($swpm_id)){
|
161 |
+
//This IPN has the SWPM ID. Retrieve the member record using member ID.
|
162 |
+
swpm_debug_log_subsc("Member ID is present. Retrieving member account from the database. Member ID: " . $swpm_id, true);
|
163 |
+
$resultset = SwpmMemberUtils::get_user_by_id($swpm_id);
|
164 |
+
} else if (isset($ipn_data['subscr_id']) && !empty($ipn_data['subscr_id'])) {
|
165 |
+
//This IPN has the subscriber ID. Retrieve the member record using subscr_id.
|
166 |
+
$subscr_id = $ipn_data['subscr_id'];
|
167 |
+
swpm_debug_log_subsc("Subscriber ID is present. Retrieving member account from the database. Subscr_id: " . $subscr_id, true);
|
168 |
+
$resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s", $subscr_id), OBJECT);
|
169 |
+
} else {
|
170 |
+
//Refund for a one time transaction. Use the parent transaction ID to retrieve the profile.
|
171 |
+
$subscr_id = $ipn_data['parent_txn_id'];
|
172 |
+
$resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s", $subscr_id), OBJECT);
|
173 |
+
}
|
174 |
+
|
175 |
if ($resultset) {
|
176 |
+
//We have found a member profile for this notification.
|
177 |
+
|
178 |
$member_id = $resultset->member_id;
|
179 |
+
|
180 |
+
//First, check if this is a refund notification.
|
181 |
+
if ($refund) {
|
182 |
+
//This is a refund (not just a subscription cancellation or end). So deactivate the account regardless and bail.
|
183 |
+
SwpmMemberUtils::update_account_state($member_id, 'inactive');//Set the account status to inactive.
|
184 |
+
swpm_debug_log_subsc("Subscription refund notification received! Member account deactivated.", true);
|
185 |
+
return;
|
186 |
+
}
|
187 |
+
|
188 |
+
//This is a cancellation or end of subscription term (no refund).
|
189 |
+
|
190 |
+
//Lets retrieve the membership level and details
|
191 |
+
$level_id = $resultset->membership_level;
|
192 |
+
swpm_debug_log_subsc("Membership level ID of the member is: " . $level_id, true);
|
193 |
+
$level_row = SwpmUtils::get_membership_level_row_by_id($level_id);
|
194 |
+
$subs_duration_type = $level_row->subscription_duration_type;
|
195 |
+
|
196 |
+
if($subs_duration_type == SwpmMembershipLevel::NO_EXPIRY){
|
197 |
+
//This is a level with "no expiry" or "until cancelled" duration.
|
198 |
+
swpm_debug_log_subsc('This is a level with "no expiry" or "until cancelled" duration', true);
|
199 |
+
|
200 |
+
//Deactivate this account as the membership level is "no expiry" or "until cancelled".
|
201 |
+
$account_state = 'inactive';
|
202 |
+
SwpmMemberUtils::update_account_state($member_id, $account_state);
|
203 |
+
swpm_debug_log_subsc("Subscription cancellation or end of term received! Member account deactivated. Member ID: " . $member_id, true);
|
204 |
+
|
205 |
+
} else if ($subs_duration_type == SwpmMembershipLevel::FIXED_DATE){
|
206 |
+
//This is a level with a "fixed expiry date" duration.
|
207 |
+
swpm_debug_log_subsc('This is a level with a "fixed expiry date" duration.', true);
|
208 |
+
swpm_debug_log_subsc('Nothing to do here. The account will expire on the fixed set date.', true);
|
209 |
+
|
210 |
+
} else {
|
211 |
+
//This is a level with "duration" type expiry (example: 30 days, 1 year etc). subscription_period has the duration/period.
|
212 |
+
$subs_period = $level_row->subscription_period;
|
213 |
+
$subs_period_unit = SwpmMembershipLevel::get_level_duration_type_string($level_row->subscription_duration_type);
|
214 |
+
|
215 |
+
swpm_debug_log_subsc('This is a level with "duration" type expiry. Duration period: ' . $subs_period . ', Unit: ' . $subs_period_unit, true);
|
216 |
+
swpm_debug_log_subsc('Nothing to do here. The account will expire after the duration time is over.', true);
|
217 |
+
|
218 |
+
//TODO Later as an improvement. If you wanted to segment the members who have unsubscribed, you can set the account status to "unsubscribed" here.
|
219 |
+
//Make sure the cronjob to do expiry check and deactivate the member accounts treat this status as if it is "active".
|
220 |
+
|
221 |
+
}
|
222 |
|
223 |
$ipn_data['member_id'] = $member_id;
|
224 |
do_action('swpm_subscription_payment_cancelled', $ipn_data);//Hook for recurring payment received
|
225 |
|
226 |
} else {
|
227 |
+
swpm_debug_log_subsc("No associated active member record found for this notification.", false);
|
228 |
return;
|
229 |
}
|
230 |
}
|
232 |
function swpm_update_member_subscription_start_date_if_applicable($ipn_data) {
|
233 |
global $wpdb;
|
234 |
$members_table_name = $wpdb->prefix . "swpm_members_tbl";
|
|
|
235 |
$email = $ipn_data['payer_email'];
|
236 |
$subscr_id = $ipn_data['subscr_id'];
|
237 |
$account_state = SwpmSettings::get_instance()->get_value('default-account-status', 'active');
|
238 |
swpm_debug_log_subsc("Updating subscription start date if applicable for this subscription payment. Subscriber ID: " . $subscr_id . " Email: " . $email, true);
|
239 |
|
240 |
+
//We can also query using the email address or SWPM ID (if present in custom var).
|
241 |
$query_db = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name WHERE subscr_id = %s", $subscr_id), OBJECT);
|
242 |
if ($query_db) {
|
243 |
$swpm_id = $query_db->member_id;
|
253 |
$resultset = $wpdb->query($updatedb);
|
254 |
swpm_debug_log_subsc("Updated the member profile with current date as the subscription start date.", true);
|
255 |
} else {
|
256 |
+
swpm_debug_log_subsc("Did not find an existing record in the members table for subscriber ID: " . $subscr_id, true);
|
257 |
+
swpm_debug_log_subsc("This is a new subscription payment for a new subscription agreement.", true);
|
258 |
}
|
259 |
}
|
260 |
|
268 |
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
269 |
|
270 |
// Timestamp
|
271 |
+
$text = '[' . date('m/d/Y g:i A') . '] - ' . (($success) ? 'SUCCESS: ' : 'FAILURE: ') . $message . "\n";
|
272 |
if ($end) {
|
273 |
$text .= "\n------------------------------------------------------------------\n\n";
|
274 |
}
|
languages/swpm-it_IT.mo
ADDED
Binary file
|
languages/swpm-it_IT.po
ADDED
@@ -0,0 +1,1334 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: simple membership\n"
|
4 |
+
"POT-Creation-Date: 2016-09-25 10:11+0200\n"
|
5 |
+
"PO-Revision-Date: 2016-09-25 10:51+0200\n"
|
6 |
+
"Language-Team: \n"
|
7 |
+
"MIME-Version: 1.0\n"
|
8 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
+
"Content-Transfer-Encoding: 8bit\n"
|
10 |
+
"X-Generator: Poedit 1.8.8\n"
|
11 |
+
"X-Poedit-KeywordsList: __;_e\n"
|
12 |
+
"X-Poedit-Basepath: .\n"
|
13 |
+
"Last-Translator: \n"
|
14 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
+
"Language: it_IT\n"
|
16 |
+
"X-Poedit-SearchPath-0: .\n"
|
17 |
+
|
18 |
+
#: classes/class.simple-wp-membership.php:264
|
19 |
+
msgid "You are not logged in."
|
20 |
+
msgstr "Non hai effettuato l'accesso"
|
21 |
+
|
22 |
+
#: classes/class.simple-wp-membership.php:298
|
23 |
+
msgid "Simple WP Membership Protection"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: classes/class.simple-wp-membership.php:310
|
27 |
+
msgid "Simple Membership Protection options"
|
28 |
+
msgstr "Opzioni Simple Membership Protection"
|
29 |
+
|
30 |
+
#: classes/class.simple-wp-membership.php:326
|
31 |
+
msgid "Do you want to protect this content?"
|
32 |
+
msgstr "Proteggi il contenuto"
|
33 |
+
|
34 |
+
#: classes/class.simple-wp-membership.php:331
|
35 |
+
msgid "Select the membership level that can access this content:"
|
36 |
+
msgstr "Seleziona il livello utente che può accedere a questo contentuto"
|
37 |
+
|
38 |
+
#: classes/class.simple-wp-membership.php:464
|
39 |
+
msgid "WP Membership"
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: classes/class.simple-wp-membership.php:465 classes/class.swpm-members.php:10
|
43 |
+
#: views/admin_members_menu.php:2
|
44 |
+
msgid "Members"
|
45 |
+
msgstr "Iscritti"
|
46 |
+
|
47 |
+
#: classes/class.simple-wp-membership.php:466
|
48 |
+
#: classes/class.swpm-category-list.php:20
|
49 |
+
#: classes/class.swpm-membership-levels.php:11
|
50 |
+
msgid "Membership Levels"
|
51 |
+
msgstr "Livelli di iscrizione"
|
52 |
+
|
53 |
+
#: classes/class.simple-wp-membership.php:467
|
54 |
+
msgid "Settings"
|
55 |
+
msgstr "Impostazioni"
|
56 |
+
|
57 |
+
#: classes/class.simple-wp-membership.php:468
|
58 |
+
msgid "Payments"
|
59 |
+
msgstr "Pagamenti"
|
60 |
+
|
61 |
+
#: classes/class.simple-wp-membership.php:469
|
62 |
+
msgid "Add-ons"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: classes/class.swpm-access-control.php:21
|
66 |
+
#: classes/class.swpm-access-control.php:28
|
67 |
+
#: classes/class.swpm-access-control.php:55
|
68 |
+
msgid "You need to login to view this content. "
|
69 |
+
msgstr "Per visualizzare questo contenuto devi essere registrato."
|
70 |
+
|
71 |
+
#: classes/class.swpm-access-control.php:34
|
72 |
+
#: classes/class.swpm-access-control.php:60
|
73 |
+
msgid ""
|
74 |
+
"Your account has expired. Please renew your account to gain access to this "
|
75 |
+
"content."
|
76 |
+
msgstr ""
|
77 |
+
"Il tuo abbonamento è scaduto. Rinnovalo per accedere a questo contenuto."
|
78 |
+
|
79 |
+
#: classes/class.swpm-access-control.php:41
|
80 |
+
msgid "This content can only be viewed by members who joined on or before "
|
81 |
+
msgstr "Per visualizzare questo contenuto devi essere registrato."
|
82 |
+
|
83 |
+
#: classes/class.swpm-access-control.php:46
|
84 |
+
#: classes/class.swpm-access-control.php:66
|
85 |
+
msgid "This content is not permitted for your membership level."
|
86 |
+
msgstr "Questo contenuto è riservato a un livello d'iscrizione superiore."
|
87 |
+
|
88 |
+
#: classes/class.swpm-access-control.php:84
|
89 |
+
msgid " The rest of the content is not permitted for your membership level."
|
90 |
+
msgstr ""
|
91 |
+
"Il resto del contenuto è riservato a un livello d'iscrizione superiore."
|
92 |
+
|
93 |
+
#: classes/class.swpm-access-control.php:88
|
94 |
+
#: classes/class.swpm-access-control.php:106
|
95 |
+
msgid "You need to login to view the rest of the content. "
|
96 |
+
msgstr "Per visualizzare tutto il contenuto devi effettuare l'accesso."
|
97 |
+
|
98 |
+
#: classes/class.swpm-admin-registration.php:54
|
99 |
+
msgid "Member record added successfully."
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: classes/class.swpm-admin-registration.php:59
|
103 |
+
#: classes/class.swpm-admin-registration.php:81
|
104 |
+
#: classes/class.swpm-admin-registration.php:105
|
105 |
+
#: classes/class.swpm-membership-level.php:43
|
106 |
+
#: classes/class.swpm-membership-level.php:62
|
107 |
+
msgid "Please correct the following:"
|
108 |
+
msgstr "Per favore, correggere i seguenti errori:"
|
109 |
+
|
110 |
+
#: classes/class.swpm-admin-registration.php:96
|
111 |
+
msgid "Your current password"
|
112 |
+
msgstr "La tua password attuale:"
|
113 |
+
|
114 |
+
#: classes/class.swpm-ajax.php:14
|
115 |
+
msgid "Invalid Email Address"
|
116 |
+
msgstr "Indirizzo e-mail non valido."
|
117 |
+
|
118 |
+
#: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
|
119 |
+
msgid "Aready taken"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: classes/class.swpm-ajax.php:30
|
123 |
+
msgid "Name contains invalid character"
|
124 |
+
msgstr "Il nome contiene caratteri non validi."
|
125 |
+
|
126 |
+
#: classes/class.swpm-ajax.php:37
|
127 |
+
msgid "Available"
|
128 |
+
msgstr "Disponibile"
|
129 |
+
|
130 |
+
#: classes/class.swpm-auth.php:50
|
131 |
+
msgid "User Not Found."
|
132 |
+
msgstr "Nessun utente trovato con questo indirizzo e-mail."
|
133 |
+
|
134 |
+
#: classes/class.swpm-auth.php:57
|
135 |
+
msgid "Password Empty or Invalid."
|
136 |
+
msgstr "Campo password vuoto o non valido"
|
137 |
+
|
138 |
+
#: classes/class.swpm-auth.php:82
|
139 |
+
msgid "Account is inactive."
|
140 |
+
msgstr "L'account è disattivo."
|
141 |
+
|
142 |
+
#: classes/class.swpm-auth.php:85
|
143 |
+
msgid "Account is pending."
|
144 |
+
msgstr ""
|
145 |
+
|
146 |
+
#: classes/class.swpm-auth.php:88 classes/class.swpm-auth.php:106
|
147 |
+
msgid "Account has expired."
|
148 |
+
msgstr "L'account è scaduto."
|
149 |
+
|
150 |
+
#: classes/class.swpm-auth.php:114
|
151 |
+
msgid "You are logged in as:"
|
152 |
+
msgstr "Sei loggato come:"
|
153 |
+
|
154 |
+
#: classes/class.swpm-auth.php:160
|
155 |
+
msgid "Logged Out Successfully."
|
156 |
+
msgstr ""
|
157 |
+
|
158 |
+
#: classes/class.swpm-auth.php:210
|
159 |
+
msgid "Session Expired."
|
160 |
+
msgstr "Sessione scaduta."
|
161 |
+
|
162 |
+
#: classes/class.swpm-auth.php:219
|
163 |
+
msgid "Invalid Username"
|
164 |
+
msgstr "Username non valido."
|
165 |
+
|
166 |
+
#: classes/class.swpm-auth.php:227
|
167 |
+
msgid "Please login again."
|
168 |
+
msgstr "Per favore esegui di nuovo l'accesso."
|
169 |
+
|
170 |
+
#: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:23
|
171 |
+
#: classes/class.swpm-membership-levels.php:10
|
172 |
+
#: classes/class.swpm-membership-levels.php:20
|
173 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:80
|
174 |
+
#: views/add.php:30 views/admin_member_form_common_part.php:2 views/edit.php:53
|
175 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:36
|
176 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:217
|
177 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:37
|
178 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:310
|
179 |
+
msgid "Membership Level"
|
180 |
+
msgstr "Livello d'iscrizione"
|
181 |
+
|
182 |
+
#: classes/class.swpm-category-list.php:33 classes/class.swpm-members.php:18
|
183 |
+
#: classes/class.swpm-membership-levels.php:19
|
184 |
+
msgid "ID"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: classes/class.swpm-category-list.php:34
|
188 |
+
msgid "Name"
|
189 |
+
msgstr "Nome"
|
190 |
+
|
191 |
+
#: classes/class.swpm-category-list.php:35
|
192 |
+
msgid "Description"
|
193 |
+
msgstr "Descrizione"
|
194 |
+
|
195 |
+
#: classes/class.swpm-category-list.php:36
|
196 |
+
msgid "Count"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: classes/class.swpm-category-list.php:80
|
200 |
+
msgid "Category protection updated!"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: classes/class.swpm-form.php:26
|
204 |
+
msgid ""
|
205 |
+
"Wordpress account exists with given username. But given email doesn't match."
|
206 |
+
msgstr ""
|
207 |
+
"Un account Wordpress con questo nome esiste già, ma non combacia con l'email "
|
208 |
+
"fornita."
|
209 |
+
|
210 |
+
#: classes/class.swpm-form.php:31
|
211 |
+
msgid ""
|
212 |
+
"Wordpress account exists with given email. But given username doesn't match."
|
213 |
+
msgstr ""
|
214 |
+
"Un account Wordpress con questa e-mail esiste già, ma non combacia con il "
|
215 |
+
"nome utente fornito."
|
216 |
+
|
217 |
+
#: classes/class.swpm-form.php:40
|
218 |
+
msgid "Username is required"
|
219 |
+
msgstr "Nome utente richiesto"
|
220 |
+
|
221 |
+
#: classes/class.swpm-form.php:44
|
222 |
+
msgid "Username contains invalid character"
|
223 |
+
msgstr "Il nome contiene caratteri non validi."
|
224 |
+
|
225 |
+
#: classes/class.swpm-form.php:52
|
226 |
+
msgid "Username already exists."
|
227 |
+
msgstr "Username già esistente."
|
228 |
+
|
229 |
+
#: classes/class.swpm-form.php:75
|
230 |
+
msgid "Password is required"
|
231 |
+
msgstr "Password richiesta"
|
232 |
+
|
233 |
+
#: classes/class.swpm-form.php:82
|
234 |
+
msgid "Password mismatch"
|
235 |
+
msgstr "La password non combacia."
|
236 |
+
|
237 |
+
#: classes/class.swpm-form.php:93
|
238 |
+
msgid "Email is required"
|
239 |
+
msgstr "E-mail richiesta"
|
240 |
+
|
241 |
+
#: classes/class.swpm-form.php:97
|
242 |
+
msgid "Email is invalid"
|
243 |
+
msgstr "Indirizzo e-mail non valido."
|
244 |
+
|
245 |
+
#: classes/class.swpm-form.php:113
|
246 |
+
msgid "Email is already used."
|
247 |
+
msgstr "Indirizzo e-mail già in uso."
|
248 |
+
|
249 |
+
#: classes/class.swpm-form.php:170
|
250 |
+
msgid "Member since field is invalid"
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: classes/class.swpm-form.php:181
|
254 |
+
msgid "Access starts field is invalid"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: classes/class.swpm-form.php:191
|
258 |
+
msgid "Gender field is invalid"
|
259 |
+
msgstr ""
|
260 |
+
|
261 |
+
#: classes/class.swpm-form.php:202
|
262 |
+
msgid "Account state field is invalid"
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
#: classes/class.swpm-form.php:209
|
266 |
+
msgid "Invalid membership level"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: classes/class.swpm-front-registration.php:71
|
270 |
+
msgid "Security check: captcha validation failed."
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: classes/class.swpm-front-registration.php:80
|
274 |
+
msgid "Registration Successful. "
|
275 |
+
msgstr "Registrazione completata."
|
276 |
+
|
277 |
+
#: classes/class.swpm-front-registration.php:80
|
278 |
+
#: classes/class.swpm-settings.php:377
|
279 |
+
msgid "Please"
|
280 |
+
msgstr "Per favore"
|
281 |
+
|
282 |
+
#: classes/class.swpm-front-registration.php:80
|
283 |
+
#: classes/class.swpm-settings.php:377 views/login.php:21
|
284 |
+
msgid "Login"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: classes/class.swpm-front-registration.php:92
|
288 |
+
#: classes/class.swpm-front-registration.php:179
|
289 |
+
msgid "Please correct the following"
|
290 |
+
msgstr "Per favore, correggere i seguenti errori:"
|
291 |
+
|
292 |
+
#: classes/class.swpm-front-registration.php:123
|
293 |
+
msgid "Membership Level Couldn't be found."
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: classes/class.swpm-front-registration.php:162
|
297 |
+
msgid "Profile updated successfully."
|
298 |
+
msgstr "Profilo aggiornato con successo."
|
299 |
+
|
300 |
+
#: classes/class.swpm-front-registration.php:170
|
301 |
+
msgid ""
|
302 |
+
"Profile updated successfully. You will need to re-login since you changed "
|
303 |
+
"your password."
|
304 |
+
msgstr ""
|
305 |
+
"Profilo aggiornato con successo. Se hai cambiato la password dovrai "
|
306 |
+
"effettuare nuovamente l'accesso."
|
307 |
+
|
308 |
+
#: classes/class.swpm-front-registration.php:189
|
309 |
+
msgid "Email address not valid."
|
310 |
+
msgstr "Indirizzo e-mail non valido."
|
311 |
+
|
312 |
+
#: classes/class.swpm-front-registration.php:200
|
313 |
+
msgid "No user found with that email address."
|
314 |
+
msgstr "Nessun utente trovato con questo indirizzo e-mail."
|
315 |
+
|
316 |
+
#: classes/class.swpm-front-registration.php:201
|
317 |
+
#: classes/class.swpm-front-registration.php:225
|
318 |
+
msgid "Email Address: "
|
319 |
+
msgstr "Indirizzo e-mail:"
|
320 |
+
|
321 |
+
#: classes/class.swpm-front-registration.php:224
|
322 |
+
msgid "New password has been sent to your email address."
|
323 |
+
msgstr ""
|
324 |
+
"La tua nuova password è stata inviata all'indirizzo email che ci hai fornito."
|
325 |
+
|
326 |
+
#: classes/class.swpm-init-time-tasks.php:108
|
327 |
+
msgid "Sorry, Nonce verification failed."
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#: classes/class.swpm-init-time-tasks.php:115
|
331 |
+
msgid "Sorry, Password didn't match."
|
332 |
+
msgstr "La password non combacia."
|
333 |
+
|
334 |
+
#: classes/class.swpm-level-form.php:47
|
335 |
+
msgid "Date format is not valid."
|
336 |
+
msgstr ""
|
337 |
+
|
338 |
+
#: classes/class.swpm-level-form.php:55
|
339 |
+
msgid "Access duration must be > 0."
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: classes/class.swpm-member-utils.php:22
|
343 |
+
#: classes/class.swpm-member-utils.php:30
|
344 |
+
#: classes/class.swpm-member-utils.php:38
|
345 |
+
#: classes/class.swpm-member-utils.php:48
|
346 |
+
msgid "User is not logged in."
|
347 |
+
msgstr "Non hai effettuato l'accesso"
|
348 |
+
|
349 |
+
#: classes/class.swpm-members.php:9
|
350 |
+
msgid "Member"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: classes/class.swpm-members.php:19 views/add.php:6 views/admin_add.php:11
|
354 |
+
#: views/admin_edit.php:9 views/edit.php:5 views/login.php:5
|
355 |
+
msgid "Username"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: classes/class.swpm-members.php:20
|
359 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:74
|
360 |
+
#: views/add.php:22 views/admin_member_form_common_part.php:15
|
361 |
+
#: views/edit.php:21
|
362 |
+
msgid "First Name"
|
363 |
+
msgstr "Nome"
|
364 |
+
|
365 |
+
#: classes/class.swpm-members.php:21
|
366 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:75
|
367 |
+
#: views/add.php:26 views/admin_member_form_common_part.php:19
|
368 |
+
#: views/edit.php:25
|
369 |
+
msgid "Last Name"
|
370 |
+
msgstr "Cognome"
|
371 |
+
|
372 |
+
#: classes/class.swpm-members.php:22 views/add.php:10 views/edit.php:9
|
373 |
+
msgid "Email"
|
374 |
+
msgstr "Indirizzo e-mail:"
|
375 |
+
|
376 |
+
#: classes/class.swpm-members.php:24 views/admin_member_form_common_part.php:11
|
377 |
+
msgid "Access Starts"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: classes/class.swpm-members.php:25
|
381 |
+
msgid "Account State"
|
382 |
+
msgstr ""
|
383 |
+
|
384 |
+
#: classes/class.swpm-members.php:41
|
385 |
+
#: classes/class.swpm-membership-levels.php:35
|
386 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:80
|
387 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:95
|
388 |
+
msgid "Delete"
|
389 |
+
msgstr "Cancella"
|
390 |
+
|
391 |
+
#: classes/class.swpm-members.php:42
|
392 |
+
msgid "Set Status to Active"
|
393 |
+
msgstr "Imposta lo stato in \"Attivo\""
|
394 |
+
|
395 |
+
#: classes/class.swpm-members.php:44
|
396 |
+
msgid "Set Status to Inactive"
|
397 |
+
msgstr "Imposta lo stato in \"Disattivo\""
|
398 |
+
|
399 |
+
#: classes/class.swpm-members.php:45
|
400 |
+
msgid "Set Status to Pending"
|
401 |
+
msgstr "Imposta lo stato in \"In attesa\""
|
402 |
+
|
403 |
+
#: classes/class.swpm-members.php:46
|
404 |
+
msgid "Set Status to Expired"
|
405 |
+
msgstr "Imposta lo stato in \"Scaduto\""
|
406 |
+
|
407 |
+
#: classes/class.swpm-members.php:121
|
408 |
+
msgid "No Member found."
|
409 |
+
msgstr ""
|
410 |
+
|
411 |
+
#: classes/class.swpm-membership-level.php:38
|
412 |
+
msgid "Membership Level Creation Successful."
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: classes/class.swpm-membership-level.php:57
|
416 |
+
msgid "Updated Successfully."
|
417 |
+
msgstr "Aggiornato con successo."
|
418 |
+
|
419 |
+
#: classes/class.swpm-membership-levels.php:21
|
420 |
+
msgid "Role"
|
421 |
+
msgstr "Ruolo"
|
422 |
+
|
423 |
+
#: classes/class.swpm-membership-levels.php:22
|
424 |
+
msgid "Access Valid For/Until"
|
425 |
+
msgstr ""
|
426 |
+
|
427 |
+
#: classes/class.swpm-misc-utils.php:50
|
428 |
+
msgid "Registration"
|
429 |
+
msgstr "Registrazione"
|
430 |
+
|
431 |
+
#: classes/class.swpm-misc-utils.php:73
|
432 |
+
msgid "Member Login"
|
433 |
+
msgstr ""
|
434 |
+
|
435 |
+
#: classes/class.swpm-misc-utils.php:96
|
436 |
+
msgid "Profile"
|
437 |
+
msgstr "Profilo"
|
438 |
+
|
439 |
+
#: classes/class.swpm-misc-utils.php:119
|
440 |
+
msgid "Password Reset"
|
441 |
+
msgstr "Crea una nuova password"
|
442 |
+
|
443 |
+
#: classes/class.swpm-settings.php:21 classes/class.swpm-settings.php:39
|
444 |
+
msgid "General Settings"
|
445 |
+
msgstr "Impostazioni generali"
|
446 |
+
|
447 |
+
#: classes/class.swpm-settings.php:21
|
448 |
+
msgid "Payment Settings"
|
449 |
+
msgstr "Impostazioni di pagamento"
|
450 |
+
|
451 |
+
#: classes/class.swpm-settings.php:22
|
452 |
+
msgid "Email Settings"
|
453 |
+
msgstr "Impostazioni e-mail"
|
454 |
+
|
455 |
+
#: classes/class.swpm-settings.php:22
|
456 |
+
msgid "Tools"
|
457 |
+
msgstr "Strumenti"
|
458 |
+
|
459 |
+
#: classes/class.swpm-settings.php:22 classes/class.swpm-settings.php:150
|
460 |
+
msgid "Advanced Settings"
|
461 |
+
msgstr "Impostazioni avanzate"
|
462 |
+
|
463 |
+
#: classes/class.swpm-settings.php:22
|
464 |
+
msgid "Addons Settings"
|
465 |
+
msgstr "Impostazioni aggiuntive"
|
466 |
+
|
467 |
+
#: classes/class.swpm-settings.php:38
|
468 |
+
msgid "Plugin Documentation"
|
469 |
+
msgstr "Documentazione plugin"
|
470 |
+
|
471 |
+
#: classes/class.swpm-settings.php:40
|
472 |
+
msgid "Enable Free Membership"
|
473 |
+
msgstr "Consenti iscrizione gratuita"
|
474 |
+
|
475 |
+
#: classes/class.swpm-settings.php:41
|
476 |
+
msgid ""
|
477 |
+
"Enable/disable registration for free membership level. When you enable this "
|
478 |
+
"option, make sure to specify a free membership level ID in the field below."
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#: classes/class.swpm-settings.php:42
|
482 |
+
msgid "Free Membership Level ID"
|
483 |
+
msgstr ""
|
484 |
+
|
485 |
+
#: classes/class.swpm-settings.php:43
|
486 |
+
msgid "Assign free membership level ID"
|
487 |
+
msgstr ""
|
488 |
+
|
489 |
+
#: classes/class.swpm-settings.php:44
|
490 |
+
msgid "Enable More Tag Protection"
|
491 |
+
msgstr ""
|
492 |
+
|
493 |
+
#: classes/class.swpm-settings.php:45
|
494 |
+
msgid ""
|
495 |
+
"Enables or disables \"more\" tag protection in the posts and pages. Anything "
|
496 |
+
"after the More tag is protected. Anything before the more tag is teaser "
|
497 |
+
"content."
|
498 |
+
msgstr ""
|
499 |
+
"Abilita o disabilita il tag di protezione \"more\" nei post e nelle pagine. "
|
500 |
+
"Tutto quello che segue il tag \"more\" è protetto. Il contenuto sopra al tag "
|
501 |
+
"\"more\" è invece fornito in anteprima."
|
502 |
+
|
503 |
+
#: classes/class.swpm-settings.php:46
|
504 |
+
msgid "Hide Adminbar"
|
505 |
+
msgstr "Nascondi la barra d'amministrazione"
|
506 |
+
|
507 |
+
#: classes/class.swpm-settings.php:47
|
508 |
+
msgid ""
|
509 |
+
"WordPress shows an admin toolbar to the logged in users of the site. Check "
|
510 |
+
"this box if you want to hide that admin toolbar in the fronend of your site."
|
511 |
+
msgstr ""
|
512 |
+
"WordPress mostra la barra dell'amministratore agli utenti che hanno "
|
513 |
+
"effettuato l'accesso. Spunta questa casella se vuoi nascondere la barra nel "
|
514 |
+
"front-end."
|
515 |
+
|
516 |
+
#: classes/class.swpm-settings.php:49
|
517 |
+
msgid "Default Account Status"
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: classes/class.swpm-settings.php:52
|
521 |
+
msgid ""
|
522 |
+
"Select the default account status for newly registered users. If you want to "
|
523 |
+
"manually approve the members then you can set the status to \"Pending\"."
|
524 |
+
msgstr ""
|
525 |
+
"Selezione lo stato di default dell'account per i nuovi utenti registrati. Se "
|
526 |
+
"desideri approvare manualmente le nuove iscrizioni, seleziona \"In attesa\"."
|
527 |
+
|
528 |
+
#: classes/class.swpm-settings.php:53
|
529 |
+
msgid "Allow Account Deletion"
|
530 |
+
msgstr "Consenti la cancellazione dell'account"
|
531 |
+
|
532 |
+
#: classes/class.swpm-settings.php:55
|
533 |
+
msgid "Allow users to delete their accounts."
|
534 |
+
msgstr "Consenti agli utenti di cancellare i loro account."
|
535 |
+
|
536 |
+
#: classes/class.swpm-settings.php:56
|
537 |
+
msgid "Auto Delete Pending Account"
|
538 |
+
msgstr "Cancella automaticamente gli account pendenti."
|
539 |
+
|
540 |
+
#: classes/class.swpm-settings.php:59
|
541 |
+
msgid "Select how long you want to keep \"pending\" account."
|
542 |
+
msgstr ""
|
543 |
+
"Seleziona quanto a lungo un account può restare nello stato \"in attesa\"."
|
544 |
+
|
545 |
+
#: classes/class.swpm-settings.php:67
|
546 |
+
msgid "Pages Settings"
|
547 |
+
msgstr "Impostazioni di pagina"
|
548 |
+
|
549 |
+
#: classes/class.swpm-settings.php:68
|
550 |
+
msgid "Login Page URL"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: classes/class.swpm-settings.php:70
|
554 |
+
msgid "Registration Page URL"
|
555 |
+
msgstr ""
|
556 |
+
|
557 |
+
#: classes/class.swpm-settings.php:72
|
558 |
+
msgid "Join Us Page URL"
|
559 |
+
msgstr ""
|
560 |
+
|
561 |
+
#: classes/class.swpm-settings.php:74
|
562 |
+
msgid "Edit Profile Page URL"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: classes/class.swpm-settings.php:76
|
566 |
+
msgid "Password Reset Page URL"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: classes/class.swpm-settings.php:79
|
570 |
+
msgid "Test & Debug Settings"
|
571 |
+
msgstr "Impostazioni di test e debug"
|
572 |
+
|
573 |
+
#: classes/class.swpm-settings.php:81
|
574 |
+
msgid "Check this option to enable debug logging."
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
+
#: classes/class.swpm-settings.php:86
|
578 |
+
msgid "Enable Sandbox Testing"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: classes/class.swpm-settings.php:87
|
582 |
+
msgid "Enable this option if you want to do sandbox payment testing."
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#: classes/class.swpm-settings.php:97 classes/class.swpm-settings.php:145
|
586 |
+
#: classes/class.swpm-settings.php:243
|
587 |
+
msgid "Settings updated!"
|
588 |
+
msgstr "Impostazioni aggiornate!"
|
589 |
+
|
590 |
+
#: classes/class.swpm-settings.php:102
|
591 |
+
msgid "Email Misc. Settings"
|
592 |
+
msgstr ""
|
593 |
+
|
594 |
+
#: classes/class.swpm-settings.php:103
|
595 |
+
msgid "From Email Address"
|
596 |
+
msgstr ""
|
597 |
+
|
598 |
+
#: classes/class.swpm-settings.php:106
|
599 |
+
msgid "Email Settings (Prompt to Complete Registration )"
|
600 |
+
msgstr ""
|
601 |
+
|
602 |
+
#: classes/class.swpm-settings.php:107 classes/class.swpm-settings.php:113
|
603 |
+
#: classes/class.swpm-settings.php:125 classes/class.swpm-settings.php:132
|
604 |
+
msgid "Email Subject"
|
605 |
+
msgstr "Oggetto della mail"
|
606 |
+
|
607 |
+
#: classes/class.swpm-settings.php:109 classes/class.swpm-settings.php:115
|
608 |
+
#: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:134
|
609 |
+
msgid "Email Body"
|
610 |
+
msgstr "Corpo della mail"
|
611 |
+
|
612 |
+
#: classes/class.swpm-settings.php:112
|
613 |
+
msgid "Email Settings (Registration Complete)"
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: classes/class.swpm-settings.php:117
|
617 |
+
msgid "Send Notification to Admin"
|
618 |
+
msgstr "Invia una notifica all'amministratore"
|
619 |
+
|
620 |
+
#: classes/class.swpm-settings.php:118
|
621 |
+
msgid ""
|
622 |
+
"Enable this option if you want the admin to receive a notification when a "
|
623 |
+
"member registers."
|
624 |
+
msgstr ""
|
625 |
+
"Spunta quest'opzione se desideri che l'amministratore riceva una notifica "
|
626 |
+
"per ogni nuova iscrizione."
|
627 |
+
|
628 |
+
#: classes/class.swpm-settings.php:119
|
629 |
+
msgid "Admin Email Address"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: classes/class.swpm-settings.php:120
|
633 |
+
msgid ""
|
634 |
+
"Enter the email address where you want the admin notification email to be "
|
635 |
+
"sent to."
|
636 |
+
msgstr ""
|
637 |
+
"Inserisci l'indirizzo e-mail a cui inviare le mail di notifica "
|
638 |
+
"dell'amministratore."
|
639 |
+
|
640 |
+
#: classes/class.swpm-settings.php:121
|
641 |
+
msgid "Send Email to Member When Added via Admin Dashboard"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: classes/class.swpm-settings.php:124
|
645 |
+
msgid "Email Settings (Password Reset)"
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: classes/class.swpm-settings.php:131
|
649 |
+
msgid " Email Settings (Account Upgrade Notification)"
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: classes/class.swpm-settings.php:152
|
653 |
+
msgid "Enable Expired Account Login"
|
654 |
+
msgstr ""
|
655 |
+
|
656 |
+
#: classes/class.swpm-settings.php:153
|
657 |
+
msgid ""
|
658 |
+
"When enabled, expired members will be able to log into the system but won't "
|
659 |
+
"be able to view any protected content. This allows them to easily renew "
|
660 |
+
"their account by making another payment."
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
+
#: classes/class.swpm-settings.php:377
|
664 |
+
msgid "Not a Member?"
|
665 |
+
msgstr "Non sei iscritto?"
|
666 |
+
|
667 |
+
#: classes/class.swpm-settings.php:377 views/login.php:27
|
668 |
+
msgid "Join Us"
|
669 |
+
msgstr "Registrati ora"
|
670 |
+
|
671 |
+
#: classes/class.swpm-utils.php:67
|
672 |
+
msgid "Active"
|
673 |
+
msgstr "Attivo"
|
674 |
+
|
675 |
+
#: classes/class.swpm-utils.php:68
|
676 |
+
msgid "Inactive"
|
677 |
+
msgstr "Disattivo"
|
678 |
+
|
679 |
+
#: classes/class.swpm-utils.php:69
|
680 |
+
msgid "Pending"
|
681 |
+
msgstr "In attesa"
|
682 |
+
|
683 |
+
#: classes/class.swpm-utils.php:70
|
684 |
+
msgid "Expired"
|
685 |
+
msgstr "Scaduto"
|
686 |
+
|
687 |
+
#: classes/class.swpm-utils.php:297
|
688 |
+
msgid "Never"
|
689 |
+
msgstr "Mai"
|
690 |
+
|
691 |
+
#: classes/class.swpm-utils.php:371
|
692 |
+
msgid "Delete Account"
|
693 |
+
msgstr "Cancella account"
|
694 |
+
|
695 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:63
|
696 |
+
msgid "Payment Button ID"
|
697 |
+
msgstr ""
|
698 |
+
|
699 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:64
|
700 |
+
msgid "Payment Button Title"
|
701 |
+
msgstr ""
|
702 |
+
|
703 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:65
|
704 |
+
msgid "Membership Level ID"
|
705 |
+
msgstr ""
|
706 |
+
|
707 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:66
|
708 |
+
msgid "Button Shortcode"
|
709 |
+
msgstr ""
|
710 |
+
|
711 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:106
|
712 |
+
#: views/admin_members_list.php:15
|
713 |
+
#: views/payments/admin_all_payment_transactions.php:33
|
714 |
+
msgid "The selected entry was deleted!"
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:53
|
718 |
+
msgid "View Profile"
|
719 |
+
msgstr "Visualizza profilo"
|
720 |
+
|
721 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:72
|
722 |
+
msgid "Row ID"
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:73
|
726 |
+
#: views/forgot_password.php:5
|
727 |
+
msgid "Email Address"
|
728 |
+
msgstr "Indirizzo e-mail"
|
729 |
+
|
730 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:76
|
731 |
+
msgid "Member Profile"
|
732 |
+
msgstr "Profilo"
|
733 |
+
|
734 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:77
|
735 |
+
msgid "Date"
|
736 |
+
msgstr "Data"
|
737 |
+
|
738 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:78
|
739 |
+
msgid "Transaction ID"
|
740 |
+
msgstr ""
|
741 |
+
|
742 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:79
|
743 |
+
msgid "Amount"
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: classes/common/class.swpm-list-table.php:137
|
747 |
+
msgid "List View"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: classes/common/class.swpm-list-table.php:138
|
751 |
+
msgid "Excerpt View"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: classes/common/class.swpm-list-table.php:305
|
755 |
+
msgid "No items found."
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: classes/common/class.swpm-list-table.php:431
|
759 |
+
msgid "Select bulk action"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: classes/common/class.swpm-list-table.php:433
|
763 |
+
msgid "Bulk Actions"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: classes/common/class.swpm-list-table.php:443
|
767 |
+
msgid "Apply"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: classes/common/class.swpm-list-table.php:543
|
771 |
+
msgid "Filter by date"
|
772 |
+
msgstr "Filtra per data"
|
773 |
+
|
774 |
+
#: classes/common/class.swpm-list-table.php:545
|
775 |
+
msgid "All dates"
|
776 |
+
msgstr "Tutte le date"
|
777 |
+
|
778 |
+
#: classes/common/class.swpm-list-table.php:555
|
779 |
+
#, php-format
|
780 |
+
msgid "%1$s %2$d"
|
781 |
+
msgstr ""
|
782 |
+
|
783 |
+
#: classes/common/class.swpm-list-table.php:599
|
784 |
+
#, php-format
|
785 |
+
msgid "%s pending"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: classes/common/class.swpm-list-table.php:704
|
789 |
+
msgid "Select Page"
|
790 |
+
msgstr "Seleziona pagina"
|
791 |
+
|
792 |
+
#: classes/common/class.swpm-list-table.php:848
|
793 |
+
msgid "Select All"
|
794 |
+
msgstr "Seleziona tutto"
|
795 |
+
|
796 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:47
|
797 |
+
msgid "Your membership profile will be updated to reflect the payment."
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:48
|
801 |
+
msgid "Your profile username: "
|
802 |
+
msgstr "Il tuo username:"
|
803 |
+
|
804 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
|
805 |
+
msgid "Click on the following link to complete the registration."
|
806 |
+
msgstr "Clicca sul link seguente per completare la registrazione:"
|
807 |
+
|
808 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
|
809 |
+
msgid "Click here to complete your paid registration"
|
810 |
+
msgstr "Clicca sul link seguente per completare la registrazione:"
|
811 |
+
|
812 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:66
|
813 |
+
msgid ""
|
814 |
+
"If you have just made a membership payment then your payment is yet to be "
|
815 |
+
"processed. Please check back in a few minutes. An email will be sent to you "
|
816 |
+
"with the details shortly."
|
817 |
+
msgstr ""
|
818 |
+
"Se hai già effettuato il pagamento per l'iscrizione, il pagamento è ancora "
|
819 |
+
"in fase di processamento. Torna di nuovo tra qualche minuto. A breve ti sarà "
|
820 |
+
"inviata un'email con i dettagli."
|
821 |
+
|
822 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:80
|
823 |
+
msgid "Expiry: "
|
824 |
+
msgstr "Scadenza:"
|
825 |
+
|
826 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:82
|
827 |
+
msgid "You are not logged-in as a member"
|
828 |
+
msgstr "Non hai effettuato l'accesso."
|
829 |
+
|
830 |
+
#: views/add.php:14 views/admin_add.php:19 views/admin_edit.php:17
|
831 |
+
#: views/edit.php:13 views/login.php:11
|
832 |
+
msgid "Password"
|
833 |
+
msgstr ""
|
834 |
+
|
835 |
+
#: views/add.php:18 views/edit.php:17
|
836 |
+
msgid "Repeat Password"
|
837 |
+
msgstr "Digita di nuovo la password"
|
838 |
+
|
839 |
+
#: views/add.php:41
|
840 |
+
msgid "Register"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: views/admin_add.php:6
|
844 |
+
msgid "Add Member"
|
845 |
+
msgstr "Aggiungi iscritto"
|
846 |
+
|
847 |
+
#: views/admin_add.php:7
|
848 |
+
msgid "Create a brand new user and add it to this site."
|
849 |
+
msgstr "Crea un nuovo utente e aggiungilo a questo sito."
|
850 |
+
|
851 |
+
#: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:11
|
852 |
+
#: views/admin_add_level.php:15 views/admin_add_level.php:19
|
853 |
+
#: views/admin_edit.php:9 views/admin_edit.php:13 views/admin_edit_level.php:10
|
854 |
+
#: views/admin_edit_level.php:14 views/admin_edit_level.php:18
|
855 |
+
msgid "(required)"
|
856 |
+
msgstr "(richiesto)"
|
857 |
+
|
858 |
+
#: views/admin_add.php:15 views/admin_edit.php:13
|
859 |
+
msgid "E-mail"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: views/admin_add.php:19
|
863 |
+
msgid "(twice, required)"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: views/admin_add.php:24 views/admin_edit.php:21
|
867 |
+
msgid "Strength indicator"
|
868 |
+
msgstr "Sicurezza della password:"
|
869 |
+
|
870 |
+
#: views/admin_add.php:25 views/admin_edit.php:22
|
871 |
+
msgid ""
|
872 |
+
"Hint: The password should be at least seven characters long. To make it "
|
873 |
+
"stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
|
874 |
+
"$ % ^ & )."
|
875 |
+
msgstr ""
|
876 |
+
"La password dev'essere lunga almeno sette lettere. Puoi usare lettere "
|
877 |
+
"minuscole e maiuscole, numeri e simboli."
|
878 |
+
|
879 |
+
#: views/admin_add.php:29 views/admin_edit.php:26 views/loggedin.php:7
|
880 |
+
msgid "Account Status"
|
881 |
+
msgstr "Stato dell'account"
|
882 |
+
|
883 |
+
#: views/admin_add.php:39
|
884 |
+
msgid "Add New Member "
|
885 |
+
msgstr "Aggiungi iscritto"
|
886 |
+
|
887 |
+
#: views/admin_addon_settings.php:3 views/admin_settings.php:3
|
888 |
+
#: views/admin_tools_settings.php:3 views/payments/admin_payment_settings.php:3
|
889 |
+
msgid "Simple WP Membership::Settings"
|
890 |
+
msgstr ""
|
891 |
+
|
892 |
+
#: views/admin_addon_settings.php:8
|
893 |
+
msgid ""
|
894 |
+
"Some of the simple membership plugin's addon settings and options will be "
|
895 |
+
"displayed here (if you have them)"
|
896 |
+
msgstr ""
|
897 |
+
|
898 |
+
#: views/admin_addon_settings.php:13
|
899 |
+
msgid "Save Changes"
|
900 |
+
msgstr "Salva i cambiamenti"
|
901 |
+
|
902 |
+
#: views/admin_add_level.php:6
|
903 |
+
msgid "Create new membership level."
|
904 |
+
msgstr "Crea un nuovo livello d'iscrizione."
|
905 |
+
|
906 |
+
#: views/admin_add_level.php:11 views/admin_edit_level.php:10
|
907 |
+
msgid "Membership Level Name"
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: views/admin_add_level.php:15 views/admin_edit_level.php:14
|
911 |
+
msgid "Default WordPress Role"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: views/admin_add_level.php:19 views/admin_edit_level.php:18
|
915 |
+
msgid "Access Duration"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: views/admin_add_level.php:22
|
919 |
+
msgid "No Expiry (Access for this level will not expire until cancelled"
|
920 |
+
msgstr ""
|
921 |
+
"Nessuna scadenza (l'accesso a questo livello non scade fino alla "
|
922 |
+
"cancellazione dell'account)."
|
923 |
+
|
924 |
+
#: views/admin_add_level.php:23 views/admin_add_level.php:25
|
925 |
+
#: views/admin_add_level.php:27 views/admin_add_level.php:29
|
926 |
+
#: views/admin_edit_level.php:22 views/admin_edit_level.php:25
|
927 |
+
#: views/admin_edit_level.php:28 views/admin_edit_level.php:31
|
928 |
+
msgid "Expire After"
|
929 |
+
msgstr "Scadenza dopo"
|
930 |
+
|
931 |
+
#: views/admin_add_level.php:24 views/admin_edit_level.php:23
|
932 |
+
msgid "Days (Access expires after given number of days)"
|
933 |
+
msgstr "Giorni (l'accesso scade dopo un certo numero di giorni)"
|
934 |
+
|
935 |
+
#: views/admin_add_level.php:26
|
936 |
+
msgid "Weeks (Access expires after given number of weeks"
|
937 |
+
msgstr "Settimane (l'accesso scade dopo un certo numero di settimane)"
|
938 |
+
|
939 |
+
#: views/admin_add_level.php:28 views/admin_edit_level.php:29
|
940 |
+
msgid "Months (Access expires after given number of months)"
|
941 |
+
msgstr "Mesi (l'accesso scade dopo un certo numero di mesi)"
|
942 |
+
|
943 |
+
#: views/admin_add_level.php:30 views/admin_edit_level.php:32
|
944 |
+
msgid "Years (Access expires after given number of years)"
|
945 |
+
msgstr "Anni (l'accesso scade dopo un certo numero di anni)"
|
946 |
+
|
947 |
+
#: views/admin_add_level.php:31 views/admin_edit_level.php:34
|
948 |
+
msgid "Fixed Date Expiry"
|
949 |
+
msgstr "Data fissata per la scadenza"
|
950 |
+
|
951 |
+
#: views/admin_add_level.php:32 views/admin_edit_level.php:35
|
952 |
+
msgid "(Access expires on a fixed date)"
|
953 |
+
msgstr "(l'accesso scade a una data prefissata)"
|
954 |
+
|
955 |
+
#: views/admin_add_level.php:38
|
956 |
+
msgid "Add New Membership Level "
|
957 |
+
msgstr "Crea un nuovo livello d'iscrizione."
|
958 |
+
|
959 |
+
#: views/admin_add_ons_page.php:7
|
960 |
+
msgid "Simple WP Membership::Add-ons"
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: views/admin_category_list.php:2
|
964 |
+
msgid "Simple WP Membership::Categories"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: views/admin_category_list.php:7
|
968 |
+
msgid ""
|
969 |
+
"First of all, globally protect the category on your site by selecting "
|
970 |
+
"\"General Protection\" from the drop-down box below and then select the "
|
971 |
+
"categories that should be protected from non-logged in users."
|
972 |
+
msgstr ""
|
973 |
+
|
974 |
+
#: views/admin_category_list.php:10
|
975 |
+
msgid ""
|
976 |
+
"Next, select an existing membership level from the drop-down box below and "
|
977 |
+
"then select the categories you want to grant access to (for that particular "
|
978 |
+
"membership level)."
|
979 |
+
msgstr ""
|
980 |
+
|
981 |
+
#: views/admin_edit.php:5
|
982 |
+
msgid "Edit Member"
|
983 |
+
msgstr "Modifica utente"
|
984 |
+
|
985 |
+
#: views/admin_edit.php:6
|
986 |
+
msgid "Edit existing member details."
|
987 |
+
msgstr "Modifica i dettagli dell'utente."
|
988 |
+
|
989 |
+
#: views/admin_edit.php:17
|
990 |
+
msgid "(twice, leave empty to retain old password)"
|
991 |
+
msgstr ""
|
992 |
+
|
993 |
+
#: views/admin_edit.php:33
|
994 |
+
msgid "Notify User"
|
995 |
+
msgstr ""
|
996 |
+
|
997 |
+
#: views/admin_edit.php:40
|
998 |
+
msgid "Subscriber ID/Reference"
|
999 |
+
msgstr ""
|
1000 |
+
|
1001 |
+
#: views/admin_edit.php:44
|
1002 |
+
msgid "Last Accessed From IP"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: views/admin_edit.php:52
|
1006 |
+
msgid "Edit User "
|
1007 |
+
msgstr "Modifica utente"
|
1008 |
+
|
1009 |
+
#: views/admin_edit_level.php:5
|
1010 |
+
msgid "Edit membership level"
|
1011 |
+
msgstr "Modifica livello d'iscrizione"
|
1012 |
+
|
1013 |
+
#: views/admin_edit_level.php:6
|
1014 |
+
msgid "Edit membership level."
|
1015 |
+
msgstr "Modifica livello d'iscrizione"
|
1016 |
+
|
1017 |
+
#: views/admin_edit_level.php:21
|
1018 |
+
msgid "No Expiry (Access for this level will not expire until cancelled)"
|
1019 |
+
msgstr ""
|
1020 |
+
"Nessuna scadenza (l'accesso a questo livello non scade fino alla "
|
1021 |
+
"cancellazione dell'account)."
|
1022 |
+
|
1023 |
+
#: views/admin_edit_level.php:26
|
1024 |
+
msgid "Weeks (Access expires after given number of weeks)"
|
1025 |
+
msgstr "Settimane (l'accesso scade dopo un certo numero di settimane)"
|
1026 |
+
|
1027 |
+
#: views/admin_edit_level.php:41
|
1028 |
+
msgid "Edit Membership Level "
|
1029 |
+
msgstr "Modifica livello d'iscrizione"
|
1030 |
+
|
1031 |
+
#: views/admin_members.php:2
|
1032 |
+
msgid "Simple WP Membership::Members"
|
1033 |
+
msgstr ""
|
1034 |
+
|
1035 |
+
#: views/admin_members.php:3 views/admin_members_list.php:30
|
1036 |
+
msgid "Add New"
|
1037 |
+
msgstr "Aggiungi nuovo"
|
1038 |
+
|
1039 |
+
#: views/admin_membership_levels.php:2
|
1040 |
+
msgid "Simple WP Membership::Membership Levels"
|
1041 |
+
msgstr ""
|
1042 |
+
|
1043 |
+
#: views/admin_membership_levels.php:12 views/admin_members_list.php:6
|
1044 |
+
msgid "search"
|
1045 |
+
msgstr "Cerca"
|
1046 |
+
|
1047 |
+
#: views/admin_membership_level_menu.php:2
|
1048 |
+
msgid "Membership level"
|
1049 |
+
msgstr "Livello d'iscrizione"
|
1050 |
+
|
1051 |
+
#: views/admin_membership_level_menu.php:3
|
1052 |
+
msgid "Manage Content Production"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: views/admin_membership_level_menu.php:4
|
1056 |
+
msgid "Category Protection"
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: views/admin_membership_manage.php:17
|
1060 |
+
msgid "Example Content Protection Settings"
|
1061 |
+
msgstr ""
|
1062 |
+
|
1063 |
+
#: views/admin_member_form_common_part.php:23
|
1064 |
+
msgid "Gender"
|
1065 |
+
msgstr "Sesso"
|
1066 |
+
|
1067 |
+
#: views/admin_member_form_common_part.php:30 views/edit.php:29
|
1068 |
+
msgid "Phone"
|
1069 |
+
msgstr "Telefono"
|
1070 |
+
|
1071 |
+
#: views/admin_member_form_common_part.php:34 views/edit.php:33
|
1072 |
+
msgid "Street"
|
1073 |
+
msgstr "Via"
|
1074 |
+
|
1075 |
+
#: views/admin_member_form_common_part.php:38 views/edit.php:37
|
1076 |
+
msgid "City"
|
1077 |
+
msgstr "Città"
|
1078 |
+
|
1079 |
+
#: views/admin_member_form_common_part.php:42 views/edit.php:41
|
1080 |
+
msgid "State"
|
1081 |
+
msgstr "Provincia"
|
1082 |
+
|
1083 |
+
#: views/admin_member_form_common_part.php:46 views/edit.php:45
|
1084 |
+
msgid "Zipcode"
|
1085 |
+
msgstr "CAP"
|
1086 |
+
|
1087 |
+
#: views/admin_member_form_common_part.php:50 views/edit.php:49
|
1088 |
+
msgid "Country"
|
1089 |
+
msgstr "Stato"
|
1090 |
+
|
1091 |
+
#: views/admin_member_form_common_part.php:54
|
1092 |
+
msgid "Company"
|
1093 |
+
msgstr "Ente/azienda"
|
1094 |
+
|
1095 |
+
#: views/admin_member_form_common_part.php:58
|
1096 |
+
msgid "Member Since"
|
1097 |
+
msgstr "Iscritto dal"
|
1098 |
+
|
1099 |
+
#: views/admin_tools_settings.php:9
|
1100 |
+
msgid "Generate a Registration Completion link"
|
1101 |
+
msgstr "Genera un link per completare la registrazione"
|
1102 |
+
|
1103 |
+
#: views/admin_tools_settings.php:12
|
1104 |
+
msgid ""
|
1105 |
+
"You can manually generate a registration completion link here and give it to "
|
1106 |
+
"your customer if they have missed the email that was automatically sent out "
|
1107 |
+
"to them after the payment."
|
1108 |
+
msgstr ""
|
1109 |
+
"Puoi generare manualmente un link per completare la registrazione e inviarlo "
|
1110 |
+
"al tuo cliente se ha perso la mail inviata automaticamente dopo l'avvenuto "
|
1111 |
+
"pagamento."
|
1112 |
+
|
1113 |
+
#: views/admin_tools_settings.php:17
|
1114 |
+
msgid "Generate Registration Completion Link"
|
1115 |
+
msgstr "Genera il link per completare la registrazione"
|
1116 |
+
|
1117 |
+
#: views/admin_tools_settings.php:20
|
1118 |
+
msgid "OR"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: views/admin_tools_settings.php:21
|
1122 |
+
msgid "For All Pending Registrations"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: views/admin_tools_settings.php:24
|
1126 |
+
msgid "Registration Completion Links Will Appear Below:"
|
1127 |
+
msgstr "I link per completare la registrazione appariranno di seguito:"
|
1128 |
+
|
1129 |
+
#: views/admin_tools_settings.php:31
|
1130 |
+
msgid "Send Registration Reminder Email too"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: views/admin_tools_settings.php:34
|
1134 |
+
msgid "Submit"
|
1135 |
+
msgstr "Invia"
|
1136 |
+
|
1137 |
+
#: views/edit.php:59
|
1138 |
+
msgid "Update"
|
1139 |
+
msgstr "Aggiorna"
|
1140 |
+
|
1141 |
+
#: views/forgot_password.php:12
|
1142 |
+
msgid "Reset Password"
|
1143 |
+
msgstr "Crea una nuova password"
|
1144 |
+
|
1145 |
+
#: views/loggedin.php:3
|
1146 |
+
msgid "Logged in as"
|
1147 |
+
msgstr "Hai effettuato l'accesso come:"
|
1148 |
+
|
1149 |
+
#: views/loggedin.php:11
|
1150 |
+
msgid "Membership"
|
1151 |
+
msgstr "Iscrizione"
|
1152 |
+
|
1153 |
+
#: views/loggedin.php:15
|
1154 |
+
msgid "Account Expiry"
|
1155 |
+
msgstr "Scadenza:"
|
1156 |
+
|
1157 |
+
#: views/loggedin.php:19
|
1158 |
+
msgid "Logout"
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#: views/login.php:18
|
1162 |
+
msgid "Remember Me"
|
1163 |
+
msgstr "Ricordami"
|
1164 |
+
|
1165 |
+
#: views/login.php:24
|
1166 |
+
msgid "Forgot Password"
|
1167 |
+
msgstr "Password dimenticata"
|
1168 |
+
|
1169 |
+
#: views/payments/admin_all_payment_transactions.php:7
|
1170 |
+
msgid "All the payments/transactions of your members are recorded here."
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: views/payments/admin_all_payment_transactions.php:14
|
1174 |
+
msgid "Search for a transaction by using email or name"
|
1175 |
+
msgstr ""
|
1176 |
+
|
1177 |
+
#: views/payments/admin_all_payment_transactions.php:18
|
1178 |
+
msgid "Search"
|
1179 |
+
msgstr "Cerca"
|
1180 |
+
|
1181 |
+
#: views/payments/admin_create_payment_buttons.php:13
|
1182 |
+
msgid ""
|
1183 |
+
"You can create new payment button for your memberships using this interface."
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: views/payments/admin_create_payment_buttons.php:22
|
1187 |
+
msgid "Select Payment Button Type"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: views/payments/admin_create_payment_buttons.php:34
|
1191 |
+
msgid "Next"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: views/payments/admin_edit_payment_buttons.php:12
|
1195 |
+
msgid "You can edit a payment button using this interface."
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: views/payments/admin_payments_page.php:9
|
1199 |
+
msgid "Simple Membership::Payments"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: views/payments/admin_payment_buttons.php:7
|
1203 |
+
msgid ""
|
1204 |
+
"All the membership buttons that you created in the plugin are displayed here."
|
1205 |
+
msgstr ""
|
1206 |
+
|
1207 |
+
#: views/payments/admin_payment_settings.php:31
|
1208 |
+
msgid "PayPal Integration Settings"
|
1209 |
+
msgstr ""
|
1210 |
+
|
1211 |
+
#: views/payments/admin_payment_settings.php:34
|
1212 |
+
msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
|
1213 |
+
msgstr ""
|
1214 |
+
|
1215 |
+
#: views/payments/admin_payment_settings.php:37
|
1216 |
+
msgid "Enter the Membership Level ID"
|
1217 |
+
msgstr ""
|
1218 |
+
|
1219 |
+
#: views/payments/admin_payment_settings.php:39
|
1220 |
+
msgid "Generate Code"
|
1221 |
+
msgstr ""
|
1222 |
+
|
1223 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:18
|
1224 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:192
|
1225 |
+
msgid "PayPal Buy Now Button Configuration"
|
1226 |
+
msgstr ""
|
1227 |
+
|
1228 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:28
|
1229 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:209
|
1230 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:29
|
1231 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:302
|
1232 |
+
msgid "Button Title"
|
1233 |
+
msgstr ""
|
1234 |
+
|
1235 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:46
|
1236 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:227
|
1237 |
+
msgid "Payment Amount"
|
1238 |
+
msgstr ""
|
1239 |
+
|
1240 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:54
|
1241 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:235
|
1242 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:47
|
1243 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:320
|
1244 |
+
msgid "Payment Currency"
|
1245 |
+
msgstr "Valuta di pagamento"
|
1246 |
+
|
1247 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:93
|
1248 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:274
|
1249 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:173
|
1250 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:446
|
1251 |
+
msgid "Return URL"
|
1252 |
+
msgstr ""
|
1253 |
+
|
1254 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:101
|
1255 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:282
|
1256 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:86
|
1257 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:359
|
1258 |
+
msgid "PayPal Email"
|
1259 |
+
msgstr "Indirizzo PayPal"
|
1260 |
+
|
1261 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:109
|
1262 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
|
1263 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:181
|
1264 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:454
|
1265 |
+
msgid "Button Image URL"
|
1266 |
+
msgstr ""
|
1267 |
+
|
1268 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:119
|
1269 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:300
|
1270 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:193
|
1271 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:466
|
1272 |
+
msgid "Save Payment Data"
|
1273 |
+
msgstr "Salva i dati del pagamento"
|
1274 |
+
|
1275 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:201
|
1276 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:294
|
1277 |
+
msgid "Button ID"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:20
|
1281 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:288
|
1282 |
+
msgid "PayPal Subscription Button Configuration"
|
1283 |
+
msgstr "Configura il pulsante PayPal"
|
1284 |
+
|
1285 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:94
|
1286 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
|
1287 |
+
msgid "Billing Amount Each Cycle"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:102
|
1291 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
|
1292 |
+
msgid "Billing Cycle"
|
1293 |
+
msgstr ""
|
1294 |
+
|
1295 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:115
|
1296 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:388
|
1297 |
+
msgid "Billing Cycle Count"
|
1298 |
+
msgstr ""
|
1299 |
+
|
1300 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:123
|
1301 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
|
1302 |
+
msgid "Re-attempt on Failure"
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:136
|
1306 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:409
|
1307 |
+
msgid ""
|
1308 |
+
"Trial Billing Details (Leave empty if you are not offering a trial period)"
|
1309 |
+
msgstr ""
|
1310 |
+
|
1311 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:142
|
1312 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:415
|
1313 |
+
msgid "Trial Billing Amount"
|
1314 |
+
msgstr ""
|
1315 |
+
|
1316 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:150
|
1317 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:423
|
1318 |
+
msgid "Trial Billing Period"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:167
|
1322 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:440
|
1323 |
+
msgid "Optional Details"
|
1324 |
+
msgstr "Dettagli opzionali"
|
1325 |
+
|
1326 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:77
|
1327 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:79
|
1328 |
+
msgid "Buy Now"
|
1329 |
+
msgstr "Acquista ora!"
|
1330 |
+
|
1331 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:197
|
1332 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:199
|
1333 |
+
msgid "Subscribe Now"
|
1334 |
+
msgstr "Abbonati ora!"
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://simple-membership-plugin.com/
|
|
4 |
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.6
|
7 |
-
Stable tag: 3.3.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -107,6 +107,7 @@ The following language translations are already available:
|
|
107 |
* Hungarian
|
108 |
* Bosnian (Bosnia and Herzegovina)
|
109 |
* Slovak
|
|
|
110 |
|
111 |
You can translate the plugin using the language [translation documentation](https://simple-membership-plugin.com/translate-simple-membership-plugin/).
|
112 |
|
@@ -128,6 +129,17 @@ https://simple-membership-plugin.com/
|
|
128 |
|
129 |
== Changelog ==
|
130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
= 3.3.6 =
|
132 |
- Added a new option so the admin notification email content can be customized from the email settings menu of the plugin.
|
133 |
|
4 |
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.6
|
7 |
+
Stable tag: 3.3.8
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
107 |
* Hungarian
|
108 |
* Bosnian (Bosnia and Herzegovina)
|
109 |
* Slovak
|
110 |
+
* Italian
|
111 |
|
112 |
You can translate the plugin using the language [translation documentation](https://simple-membership-plugin.com/translate-simple-membership-plugin/).
|
113 |
|
129 |
|
130 |
== Changelog ==
|
131 |
|
132 |
+
= 3.3.8 =
|
133 |
+
- The account renewal payment will take into account any remaining time (when the user's level is using a duration type expiry).
|
134 |
+
- The members can now user their email address (instead of username) and password to log into the site. The username field of the member login form will accept either the email address or the username.
|
135 |
+
- The set_user_role action hook will not be triggered by the plugin as the wp_update_user() function will take care of it automatically.
|
136 |
+
|
137 |
+
= 3.3.7 =
|
138 |
+
- Added Italian language translation file. The translation was submitted by Roberto Paura.
|
139 |
+
- Improved the paypal refund handling.
|
140 |
+
- The subscription payment cancellation sequence/code has been improved. Details in the following documentation:
|
141 |
+
https://simple-membership-plugin.com/what-happens-when-paypal-subscription-cancelled/
|
142 |
+
|
143 |
= 3.3.6 =
|
144 |
- Added a new option so the admin notification email content can be customized from the email settings menu of the plugin.
|
145 |
|
simple-wp-membership.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Simple WordPress Membership
|
4 |
-
Version: 3.3.
|
5 |
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Author: smp7, wp.insider
|
7 |
Author URI: https://simple-membership-plugin.com/
|
@@ -17,7 +17,7 @@ include_once('classes/class.simple-wp-membership.php');
|
|
17 |
include_once('classes/class.swpm-cronjob.php');
|
18 |
include_once('swpm-compat.php');
|
19 |
|
20 |
-
define('SIMPLE_WP_MEMBERSHIP_VER', '3.3.
|
21 |
define('SIMPLE_WP_MEMBERSHIP_DB_VER', '1.2');
|
22 |
define('SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url());
|
23 |
define('SIMPLE_WP_MEMBERSHIP_PATH', dirname(__FILE__) . '/');
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Simple WordPress Membership
|
4 |
+
Version: 3.3.8
|
5 |
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Author: smp7, wp.insider
|
7 |
Author URI: https://simple-membership-plugin.com/
|
17 |
include_once('classes/class.swpm-cronjob.php');
|
18 |
include_once('swpm-compat.php');
|
19 |
|
20 |
+
define('SIMPLE_WP_MEMBERSHIP_VER', '3.3.8');
|
21 |
define('SIMPLE_WP_MEMBERSHIP_DB_VER', '1.2');
|
22 |
define('SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url());
|
23 |
define('SIMPLE_WP_MEMBERSHIP_PATH', dirname(__FILE__) . '/');
|
views/admin_add_ons_page.php
CHANGED
@@ -137,6 +137,22 @@ echo '<link type="text/css" rel="stylesheet" href="' . SIMPLE_WP_MEMBERSHIP_URL
|
|
137 |
'page_url' => 'https://simple-membership-plugin.com/simple-membership-member-data-exporter-addon/',
|
138 |
);
|
139 |
array_push($addons_data, $addon_16);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
|
142 |
/*** Show the addons list ***/
|
137 |
'page_url' => 'https://simple-membership-plugin.com/simple-membership-member-data-exporter-addon/',
|
138 |
);
|
139 |
array_push($addons_data, $addon_16);
|
140 |
+
|
141 |
+
$addon_17 = array(
|
142 |
+
'name' => 'Display Member Payments',
|
143 |
+
'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/swpm-member-payments-addon.png',
|
144 |
+
'description' => 'This addon allows you to display the member payments on a page using a shortcode.',
|
145 |
+
'page_url' => 'https://simple-membership-plugin.com/simple-membership-member-payments-listing-addon/',
|
146 |
+
);
|
147 |
+
array_push($addons_data, $addon_17);
|
148 |
+
|
149 |
+
$addon_17 = array(
|
150 |
+
'name' => 'AWeber Integration',
|
151 |
+
'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/swpm-aweber-integration-addon.png',
|
152 |
+
'description' => 'You can automatically signup your members to a specific list in your AWeber account when they register.',
|
153 |
+
'page_url' => 'https://simple-membership-plugin.com/simple-membership-aweber-integration-addon/',
|
154 |
+
);
|
155 |
+
array_push($addons_data, $addon_17);
|
156 |
|
157 |
|
158 |
/*** Show the addons list ***/
|
views/login.php
CHANGED
@@ -8,7 +8,7 @@ $join_url = $setting->get_value('join-us-page-url');
|
|
8 |
<form id="swpm-login-form" name="swpm-login-form" method="post" action="">
|
9 |
<div class="swpm-login-form-inner">
|
10 |
<div class="swpm-username-label">
|
11 |
-
<label for="swpm_user_name" class="swpm-label"><?php echo SwpmUtils::_('Username') ?></label>
|
12 |
</div>
|
13 |
<div class="swpm-username-input">
|
14 |
<input type="text" class="swpm-text-field swpm-username-field" id="swpm_user_name" value="" size="25" name="swpm_user_name" />
|
8 |
<form id="swpm-login-form" name="swpm-login-form" method="post" action="">
|
9 |
<div class="swpm-login-form-inner">
|
10 |
<div class="swpm-username-label">
|
11 |
+
<label for="swpm_user_name" class="swpm-label"><?php echo SwpmUtils::_('Username or Email') ?></label>
|
12 |
</div>
|
13 |
<div class="swpm-username-input">
|
14 |
<input type="text" class="swpm-text-field swpm-username-field" id="swpm_user_name" value="" size="25" name="swpm_user_name" />
|