Simple Membership - Version 3.1.8

Version Description

  • Improved the members and payments menu rendering for smaller screen devices.
  • Added a utility function to easily output a formatted date in the plugin according to the WordPress's date format settings.
  • Fixed a bug in the wp username and email validation functionality. Thanks to Klaas van der Linden for pointing it out.
  • The membership password reset form has been restructured (the HTML table has been removed).
Download this release

Release Info

Developer mra13
Plugin Icon 128x128 Simple Membership
Version 3.1.8
Comparing to
See all releases

Code changes from version 3.1.5 to 3.1.8

classes/admin-includes/class.swpm-payment-buttons-list-table.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
- class SwpmPaymentButtonsListTable extends SWPM_List_Table {
6
 
7
  private $per_page;
8
 
@@ -30,7 +30,13 @@ class SwpmPaymentButtonsListTable extends SWPM_List_Table {
30
  return get_post_meta($item['ID'], 'membership_level_id', true);
31
  break;
32
  case 'button_shortcode':
33
- $shortcode = '[swpm_payment_button id='.$item['ID'].']';
 
 
 
 
 
 
34
  return $shortcode;
35
  break;
36
  }
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
+ class SwpmPaymentButtonsListTable extends WP_List_Table {
6
 
7
  private $per_page;
8
 
30
  return get_post_meta($item['ID'], 'membership_level_id', true);
31
  break;
32
  case 'button_shortcode':
33
+ $level_id = get_post_meta($item['ID'], 'membership_level_id', true);
34
+ if(!SwpmUtils::membership_level_id_exists($level_id)){
35
+ //This membership level doesn't exist. Show an error instead of the shortcode.
36
+ $shortcode = 'Error! The membership level you specified in this button does not exist. You may have deleted this level. Edit this button and use a valid membership level.';
37
+ } else {
38
+ $shortcode = '[swpm_payment_button id='.$item['ID'].']';
39
+ }
40
  return $shortcode;
41
  break;
42
  }
classes/admin-includes/class.swpm-payments-list-table.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
- class SWPMPaymentsListTable extends SWPM_List_Table {
6
 
7
  function __construct() {
8
  global $status, $page;
@@ -41,10 +41,12 @@ class SWPMPaymentsListTable extends SWPM_List_Table {
41
  $column_value = '';
42
 
43
  if(empty($member_id)){//Lets try to get the member id using unique reference
44
- $resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s", $subscr_id), OBJECT);
45
- if ($resultset) {
46
- //Found a record
47
- $member_id = $resultset->member_id;
 
 
48
  }
49
  }
50
 
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
+ class SWPMPaymentsListTable extends WP_List_Table {
6
 
7
  function __construct() {
8
  global $status, $page;
41
  $column_value = '';
42
 
43
  if(empty($member_id)){//Lets try to get the member id using unique reference
44
+ if(!empty($subscr_id)){
45
+ $resultset = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s", $subscr_id), OBJECT);
46
+ if ($resultset) {
47
+ //Found a record
48
+ $member_id = $resultset->member_id;
49
+ }
50
  }
51
  }
52
 
classes/class.simple-wp-membership.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- include_once('class.swpm-misc-utils.php');
4
  include_once('class.swpm-utils.php');
 
5
  include_once('class.swpm-init-time-tasks.php');
6
- include_once('class.swpm-member-utils.php');
7
  include_once('class.swpm-settings.php');
8
  include_once('class.swpm-protection.php');
9
  include_once('class.swpm-permission.php');
@@ -75,7 +75,8 @@ class SimpleWpMembership {
75
  }
76
 
77
  function wp_password_reset_hook($user, $pass) {
78
- $swpm_id = SwpmUtils::get_user_by_user_name($user->user_login);
 
79
  if (!empty($swpm_id)) {
80
  $password_hash = SwpmUtils::encrypt_password($pass);
81
  global $wpdb;
@@ -151,9 +152,25 @@ class SimpleWpMembership {
151
  }
152
 
153
  public function hide_adminbar() {
154
- if (!is_user_logged_in()) {//Never show admin bar if the user is not even logged in
 
 
155
  return false;
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  $hide = SwpmSettings::get_instance()->get_value('hide-adminbar');
158
  return $hide ? FALSE : TRUE;
159
  }
1
  <?php
2
 
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-init-time-tasks.php');
 
7
  include_once('class.swpm-settings.php');
8
  include_once('class.swpm-protection.php');
9
  include_once('class.swpm-permission.php');
75
  }
76
 
77
  function wp_password_reset_hook($user, $pass) {
78
+ $swpm_user = SwpmMemberUtils::get_user_by_user_name($user->user_login);
79
+ $swpm_id = $swpm_user->member_id;
80
  if (!empty($swpm_id)) {
81
  $password_hash = SwpmUtils::encrypt_password($pass);
82
  global $wpdb;
152
  }
153
 
154
  public function hide_adminbar() {
155
+
156
+ //Never show admin toolbar if the user is not even logged in
157
+ if (!is_user_logged_in()) {
158
  return false;
159
  }
160
+
161
+ //Show admin toolbar to admin only feature is enabled.
162
+ $show_to_admin = SwpmSettings::get_instance()->get_value('show-adminbar-admin-only');
163
+ if($show_to_admin){
164
+ if (current_user_can('administrator')) {
165
+ //This is an admin user so show the tooldbar
166
+ return true;
167
+ }
168
+ else{
169
+ return false;
170
+ }
171
+ }
172
+
173
+ //Hide admin toolbar if the hide adminbar feature is enabled
174
  $hide = SwpmSettings::get_instance()->get_value('hide-adminbar');
175
  return $hide ? FALSE : TRUE;
176
  }
classes/class.swpm-access-control.php CHANGED
@@ -38,7 +38,7 @@ class SwpmAccessControl {
38
  $protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $id);
39
  if ($protect_older_posts){
40
  $this->lastError = apply_filters ('swpm_restricted_post_msg_older_post',
41
- SwpmUtils::_('This content can only be viewed by members who joined on or before ' . date(get_option( 'date_format' ), strtotime($post->post_date)))) ;
42
  return false;
43
  }
44
  $perms = SwpmPermission::get_instance($auth->get('membership_level'));
38
  $protect_older_posts = apply_filters('swpm_should_protect_older_post', false, $id);
39
  if ($protect_older_posts){
40
  $this->lastError = apply_filters ('swpm_restricted_post_msg_older_post',
41
+ SwpmUtils::_('This content can only be viewed by members who joined on or before ' . SwpmUtils::get_formatted_date_according_to_wp_settings($post->post_date) ));
42
  return false;
43
  }
44
  $perms = SwpmPermission::get_instance($auth->get('membership_level'));
classes/class.swpm-form.php CHANGED
@@ -20,18 +20,21 @@ class SwpmForm {
20
  protected function validate_wp_user_email(){
21
  $user_name = filter_input(INPUT_POST, 'user_name',FILTER_SANITIZE_STRING);
22
  $email = filter_input(INPUT_POST, 'email', FILTER_UNSAFE_RAW);
23
- if (empty($user_name)) {return;}
 
 
 
24
  $user = get_user_by('login', $user_name);
25
- if ($user && ($user->email != $email)){
26
  $this->errors['wp_email'] = SwpmUtils::_('Wordpress account exists with given username. But given email doesn\'t match.');
27
  return;
28
  }
29
  $user = get_user_by('email', $email);
30
- if($user && ($user_name != $user->login)){
31
  $this->errors['wp_user'] = SwpmUtils::_('Wordpress account exists with given email. But given username doesn\'t match.');
32
-
33
  }
34
  }
 
35
  protected function user_name() {
36
  global $wpdb;
37
  if (!empty($this->fields['user_name'])){return;}
20
  protected function validate_wp_user_email(){
21
  $user_name = filter_input(INPUT_POST, 'user_name',FILTER_SANITIZE_STRING);
22
  $email = filter_input(INPUT_POST, 'email', FILTER_UNSAFE_RAW);
23
+ if (empty($user_name)) {
24
+ return;
25
+ }
26
+
27
  $user = get_user_by('login', $user_name);
28
+ if ($user && ($user->user_email != $email)){
29
  $this->errors['wp_email'] = SwpmUtils::_('Wordpress account exists with given username. But given email doesn\'t match.');
30
  return;
31
  }
32
  $user = get_user_by('email', $email);
33
+ if($user && ($user_name != $user->user_login)){
34
  $this->errors['wp_user'] = SwpmUtils::_('Wordpress account exists with given email. But given username doesn\'t match.');
 
35
  }
36
  }
37
+
38
  protected function user_name() {
39
  global $wpdb;
40
  if (!empty($this->fields['user_name'])){return;}
classes/class.swpm-front-registration.php CHANGED
@@ -209,7 +209,8 @@ class SwpmFrontRegistration extends SwpmRegistration {
209
  $password_hash = SwpmUtils::encrypt_password(trim($password)); //should use $saned??;
210
  $wpdb->update($wpdb->prefix . "swpm_members_tbl", array('password' => $password_hash), array('member_id' => $user->member_id));
211
 
212
- // update wp user pass.
 
213
  SwpmUtils::update_wp_user($user->user_name, array('plain_password' => $password));
214
 
215
  $body = $settings->get_value('reset-mail-body');
@@ -221,6 +222,8 @@ class SwpmFrontRegistration extends SwpmRegistration {
221
  $from = $settings->get_value('email-from');
222
  $headers = "From: " . $from . "\r\n";
223
  wp_mail($email, $subject, $body, $headers);
 
 
224
  $message = '<div class="swpm-reset-pw-success">' . SwpmUtils::_("New password has been sent to your email address.") . '</div>';
225
  $message .= '<div class="swpm-reset-pw-success-email">' . SwpmUtils::_("Email Address: ") . $email . '</div>';
226
 
@@ -228,4 +231,10 @@ class SwpmFrontRegistration extends SwpmRegistration {
228
  SwpmTransfer::get_instance()->set('status', $message);
229
  }
230
 
 
 
 
 
 
 
231
  }
209
  $password_hash = SwpmUtils::encrypt_password(trim($password)); //should use $saned??;
210
  $wpdb->update($wpdb->prefix . "swpm_members_tbl", array('password' => $password_hash), array('member_id' => $user->member_id));
211
 
212
+ //Update wp user password
213
+ add_filter('send_password_change_email', array(&$this, 'dont_send_password_change_email'),1,3);//Stop wordpress from sending a reset password email to admin.
214
  SwpmUtils::update_wp_user($user->user_name, array('plain_password' => $password));
215
 
216
  $body = $settings->get_value('reset-mail-body');
222
  $from = $settings->get_value('email-from');
223
  $headers = "From: " . $from . "\r\n";
224
  wp_mail($email, $subject, $body, $headers);
225
+ SwpmLog::log_simple_debug("Member password has been reset. Password reset email sent to: ".$email,true);
226
+
227
  $message = '<div class="swpm-reset-pw-success">' . SwpmUtils::_("New password has been sent to your email address.") . '</div>';
228
  $message .= '<div class="swpm-reset-pw-success-email">' . SwpmUtils::_("Email Address: ") . $email . '</div>';
229
 
231
  SwpmTransfer::get_instance()->set('status', $message);
232
  }
233
 
234
+ function dont_send_password_change_email($send=false, $user='', $userdata='')
235
+ {
236
+ //Stop the WordPress's default password change email notification to site admin
237
+ //Only the simple membership plugin's password reset email will be sent.
238
+ return false;
239
+ }
240
  }
classes/class.swpm-init-time-tasks.php CHANGED
@@ -89,7 +89,7 @@ class SwpmInitTimeTasks {
89
 
90
  private function verify_and_delete_account() {
91
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/class.swpm-members.php');
92
- $delete_account = filter_input(INPUT_GET, 'delete_account');
93
  if (empty($delete_account)) {
94
  return;
95
  }
89
 
90
  private function verify_and_delete_account() {
91
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/class.swpm-members.php');
92
+ $delete_account = filter_input(INPUT_GET, 'swpm_delete_account');
93
  if (empty($delete_account)) {
94
  return;
95
  }
classes/class.swpm-installation.php CHANGED
@@ -52,16 +52,16 @@ class SwpmInstallation {
52
  $sql = "CREATE TABLE " . $wpdb->prefix . "swpm_members_tbl (
53
  member_id int(12) NOT NULL PRIMARY KEY AUTO_INCREMENT,
54
  user_name varchar(255) NOT NULL,
55
- first_name varchar(32) DEFAULT '',
56
- last_name varchar(32) DEFAULT '',
57
- password varchar(64) NOT NULL,
58
  member_since date NOT NULL DEFAULT '0000-00-00',
59
  membership_level smallint(6) NOT NULL,
60
  more_membership_levels VARCHAR(100) DEFAULT NULL,
61
  account_state enum('active','inactive','expired','pending','unsubscribed') DEFAULT 'pending',
62
  last_accessed datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
63
- last_accessed_from_ip varchar(64) NOT NULL,
64
- email varchar(64) DEFAULT NULL,
65
  phone varchar(64) DEFAULT NULL,
66
  address_street varchar(255) DEFAULT NULL,
67
  address_city varchar(255) DEFAULT NULL,
@@ -75,9 +75,9 @@ class SwpmInstallation {
75
  reg_code varchar(255) DEFAULT NULL,
76
  subscription_starts date DEFAULT NULL,
77
  initial_membership_level smallint(6) DEFAULT NULL,
78
- txn_id varchar(64) DEFAULT '',
79
- subscr_id varchar(32) DEFAULT '',
80
- company_name varchar(100) DEFAULT '',
81
  notes text DEFAULT NULL,
82
  flags int(11) DEFAULT '0',
83
  profile_image varchar(255) DEFAULT ''
@@ -102,7 +102,7 @@ class SwpmInstallation {
102
  disable_bookmark_list longtext,
103
  options longtext,
104
  protect_older_posts tinyint(1) NOT NULL DEFAULT '0',
105
- campaign_name varchar(60) NOT NULL DEFAULT ''
106
  )" . $charset_collate . " AUTO_INCREMENT=1 ;";
107
  dbDelta($sql);
108
  $sql = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = 1";
@@ -154,19 +154,19 @@ class SwpmInstallation {
154
 
155
  $sql = "CREATE TABLE " . $wpdb->prefix . "swpm_payments_tbl (
156
  id int(12) NOT NULL PRIMARY KEY AUTO_INCREMENT,
157
- email varchar(64) DEFAULT NULL,
158
- first_name varchar(32) DEFAULT '',
159
- last_name varchar(32) DEFAULT '',
160
  member_id varchar(16) DEFAULT '',
161
- membership_level varchar(16) DEFAULT '',
162
  txn_date date NOT NULL default '0000-00-00',
163
- txn_id varchar(128) NOT NULL default '',
164
- subscr_id varchar(128) NOT NULL default '',
165
- reference varchar(128) NOT NULL default '',
166
  payment_amount varchar(32) NOT NULL default '',
167
- gateway varchar(16) DEFAULT '',
168
  status varchar(16) DEFAULT '',
169
- ip_address varchar(64) default ''
170
  )" . $charset_collate . ";";
171
  dbDelta($sql);
172
 
@@ -210,17 +210,23 @@ class SwpmInstallation {
210
 
211
  $status_change_email_subject = "Account Updated!";
212
  $status_change_email_body = "Dear {first_name} {last_name}," .
213
- "\n\n Your account status has been updated!" .
214
  " Please login to the member area at the following URL:" .
215
  "\n\n {login_link}" .
216
  "\n\nThank You";
217
 
 
 
 
 
 
 
218
  if (empty($installed_version)) {
219
  //Do fresh install tasks
220
 
221
- /* * * Create the mandatory pages (if they are not there) ** */
222
  SwpmMiscUtils::create_mandatory_wp_pages();
223
- /* * * End of page creation ** */
224
  $settings->set_value('reg-complete-mail-subject', stripslashes($reg_email_subject))
225
  ->set_value('reg-complete-mail-body', stripslashes($reg_email_body))
226
  ->set_value('reg-prompt-complete-mail-subject', stripslashes($reg_prompt_email_subject))
@@ -232,6 +238,9 @@ class SwpmInstallation {
232
  ->set_value('account-change-email-subject', stripslashes($status_change_email_subject))
233
  ->set_value('account-change-email-body', stripslashes($status_change_email_body))
234
  ->set_value('email-from', trim(get_option('admin_email')));
 
 
 
235
  }
236
  if (version_compare($installed_version, SIMPLE_WP_MEMBERSHIP_VER) == -1) {
237
  //Do upgrade tasks
52
  $sql = "CREATE TABLE " . $wpdb->prefix . "swpm_members_tbl (
53
  member_id int(12) NOT NULL PRIMARY KEY AUTO_INCREMENT,
54
  user_name varchar(255) NOT NULL,
55
+ first_name varchar(64) DEFAULT '',
56
+ last_name varchar(64) DEFAULT '',
57
+ password varchar(255) NOT NULL,
58
  member_since date NOT NULL DEFAULT '0000-00-00',
59
  membership_level smallint(6) NOT NULL,
60
  more_membership_levels VARCHAR(100) DEFAULT NULL,
61
  account_state enum('active','inactive','expired','pending','unsubscribed') DEFAULT 'pending',
62
  last_accessed datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
63
+ last_accessed_from_ip varchar(128) NOT NULL,
64
+ email varchar(255) DEFAULT NULL,
65
  phone varchar(64) DEFAULT NULL,
66
  address_street varchar(255) DEFAULT NULL,
67
  address_city varchar(255) DEFAULT NULL,
75
  reg_code varchar(255) DEFAULT NULL,
76
  subscription_starts date DEFAULT NULL,
77
  initial_membership_level smallint(6) DEFAULT NULL,
78
+ txn_id varchar(255) DEFAULT '',
79
+ subscr_id varchar(255) DEFAULT '',
80
+ company_name varchar(255) DEFAULT '',
81
  notes text DEFAULT NULL,
82
  flags int(11) DEFAULT '0',
83
  profile_image varchar(255) DEFAULT ''
102
  disable_bookmark_list longtext,
103
  options longtext,
104
  protect_older_posts tinyint(1) NOT NULL DEFAULT '0',
105
+ campaign_name varchar(255) NOT NULL DEFAULT ''
106
  )" . $charset_collate . " AUTO_INCREMENT=1 ;";
107
  dbDelta($sql);
108
  $sql = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = 1";
154
 
155
  $sql = "CREATE TABLE " . $wpdb->prefix . "swpm_payments_tbl (
156
  id int(12) NOT NULL PRIMARY KEY AUTO_INCREMENT,
157
+ email varchar(255) DEFAULT NULL,
158
+ first_name varchar(64) DEFAULT '',
159
+ last_name varchar(64) DEFAULT '',
160
  member_id varchar(16) DEFAULT '',
161
+ membership_level varchar(64) DEFAULT '',
162
  txn_date date NOT NULL default '0000-00-00',
163
+ txn_id varchar(255) NOT NULL default '',
164
+ subscr_id varchar(255) NOT NULL default '',
165
+ reference varchar(255) NOT NULL default '',
166
  payment_amount varchar(32) NOT NULL default '',
167
+ gateway varchar(32) DEFAULT '',
168
  status varchar(16) DEFAULT '',
169
+ ip_address varchar(128) default ''
170
  )" . $charset_collate . ";";
171
  dbDelta($sql);
172
 
210
 
211
  $status_change_email_subject = "Account Updated!";
212
  $status_change_email_body = "Dear {first_name} {last_name}," .
213
+ "\n\nYour account status has been updated!" .
214
  " Please login to the member area at the following URL:" .
215
  "\n\n {login_link}" .
216
  "\n\nThank You";
217
 
218
+ $bulk_activate_email_subject = "Account Activated!";
219
+ $bulk_activate_email_body = "Hi," .
220
+ "\n\nYour account has been activated!" .
221
+ "\n\nYou can now login to the member area." .
222
+ "\n\nThank You";
223
+
224
  if (empty($installed_version)) {
225
  //Do fresh install tasks
226
 
227
+ //Create the mandatory pages (if they are not there)
228
  SwpmMiscUtils::create_mandatory_wp_pages();
229
+ //End of page creation
230
  $settings->set_value('reg-complete-mail-subject', stripslashes($reg_email_subject))
231
  ->set_value('reg-complete-mail-body', stripslashes($reg_email_body))
232
  ->set_value('reg-prompt-complete-mail-subject', stripslashes($reg_prompt_email_subject))
238
  ->set_value('account-change-email-subject', stripslashes($status_change_email_subject))
239
  ->set_value('account-change-email-body', stripslashes($status_change_email_body))
240
  ->set_value('email-from', trim(get_option('admin_email')));
241
+
242
+ $settings->set_value('bulk-activate-notify-mail-subject', stripslashes($bulk_activate_email_subject));
243
+ $settings->set_value('bulk-activate-notify-mail-body', stripslashes($bulk_activate_email_body));
244
  }
245
  if (version_compare($installed_version, SIMPLE_WP_MEMBERSHIP_VER) == -1) {
246
  //Do upgrade tasks
classes/class.swpm-members.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
- class SwpmMembers extends SWPM_List_Table {
6
 
7
  function __construct() {
8
  parent::__construct(array(
@@ -40,7 +40,7 @@ class SwpmMembers extends SWPM_List_Table {
40
  $actions = array(
41
  'bulk_delete' => SwpmUtils::_('Delete'),
42
  'bulk_active' => SwpmUtils::_('Set Status to Active'),
43
- /*'bulk_active_notify' => SwpmUtils::_('Set Status to Active and Notify'),*/
44
  'bulk_inactive' => SwpmUtils::_('Set Status to Inactive'),
45
  'bulk_pending' => SwpmUtils::_('Set Status to Pending'),
46
  'bulk_expired' => SwpmUtils::_('Set Status to Expired'),
@@ -60,6 +60,14 @@ class SwpmMembers extends SWPM_List_Table {
60
  );
61
  return $item['member_id'] . $this->row_actions($actions);
62
  }
 
 
 
 
 
 
 
 
63
 
64
  function column_cb($item) {
65
  return sprintf(
@@ -71,32 +79,62 @@ class SwpmMembers extends SWPM_List_Table {
71
  global $wpdb;
72
 
73
  $this->process_bulk_action();
74
-
75
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl";
76
  $query .= " LEFT JOIN " . $wpdb->prefix . "swpm_membership_tbl";
77
  $query .= " ON ( membership_level = id ) ";
78
  $s = filter_input(INPUT_POST, 's');
 
 
 
 
79
  if (!empty($s)) {
80
- $query .= " WHERE user_name LIKE '%" . strip_tags($s) . "%' "
 
81
  . " OR first_name LIKE '%" . strip_tags($s) . "%' "
82
  . " OR last_name LIKE '%" . strip_tags($s) . "%' "
83
  . " OR email LIKE '%" . strip_tags($s) . "%' "
84
  . " OR address_city LIKE '%" . strip_tags($s) . "%' "
85
  . " OR address_state LIKE '%" . strip_tags($s) . "%' "
86
  . " OR country LIKE '%" . strip_tags($s) . "%' "
87
- . " OR company_name LIKE '%" . strip_tags($s) . "%' ";
88
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  $orderby = filter_input(INPUT_GET, 'orderby');
90
  $orderby = empty($orderby) ? 'member_id' : $orderby;
91
  $order = filter_input(INPUT_GET, 'order');
92
  $order = empty($order) ? 'DESC' : $order;
93
-
94
  $sortable_columns = $this->get_sortable_columns();
95
  $orderby = SwpmUtils::sanitize_value_by_array($orderby, $sortable_columns);
96
  $order = SwpmUtils::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
97
-
98
  $query.=' ORDER BY ' . $orderby . ' ' . $order;
 
 
99
  $totalitems = $wpdb->query($query); //return the total number of affected rows
 
 
100
  $perpage = 20;
101
  $paged = filter_input(INPUT_GET, 'paged');
102
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
@@ -120,9 +158,28 @@ class SwpmMembers extends SWPM_List_Table {
120
  $this->_column_headers = array($columns, $hidden, $sortable);
121
  $this->items = $wpdb->get_results($query, ARRAY_A);
122
  }
123
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  function no_items() {
125
- _e('No Member found.');
126
  }
127
 
128
  function process_form_request() {
@@ -172,18 +229,28 @@ class SwpmMembers extends SWPM_List_Table {
172
  }
173
 
174
  function process_bulk_action() {
175
- //Detect when a bulk action is being triggered...
176
  $members = isset($_REQUEST['members'])? $_REQUEST['members']: array();
 
177
  $current_action = $this->current_action();
178
- if ('bulk_delete' === $current_action) {
 
179
  if (empty($members)) {
180
- echo '<div id="message" class="updated fade"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
181
  return;
182
- }
 
 
 
 
 
 
 
183
  foreach ($members as $record_id) {
184
  SwpmMembers::delete_user_by_id($record_id);
185
  }
186
  echo '<div id="message" class="updated fade"><p>Selected records deleted successfully!</p></div>';
 
187
  }
188
  else if ('bulk_active' === $current_action){
189
  $this->bulk_set_status($members, 'active');
@@ -199,7 +266,9 @@ class SwpmMembers extends SWPM_List_Table {
199
  }
200
  else if ('bulk_expired' == $current_action){
201
  $this->bulk_set_status($members, 'expired');
202
- }
 
 
203
  }
204
 
205
  function bulk_set_status($members, $status, $notify = false ){
@@ -211,7 +280,25 @@ class SwpmMembers extends SWPM_List_Table {
211
  $wpdb->query($query);
212
 
213
  if ($notify){
214
- // todo: add notification
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  }
216
  }
217
 
@@ -223,9 +310,10 @@ class SwpmMembers extends SWPM_List_Table {
223
  }
224
 
225
  public static function delete_user_by_id($id) {
226
- $user_name = SwpmUtils::get_user_by_id($id);
227
- SwpmMembers::delete_wp_user($user_name);
228
- SwpmMembers::delete_swpm_user_by_id($id);
 
229
  }
230
 
231
  public static function delete_swpm_user_by_id($id) {
@@ -236,6 +324,7 @@ class SwpmMembers extends SWPM_List_Table {
236
 
237
  function show() {
238
  ob_start();
 
239
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_members_list.php');
240
  $output = ob_get_clean();
241
  return $output;
2
 
3
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'classes/common/class.swpm-list-table.php');
4
 
5
+ class SwpmMembers extends WP_List_Table {
6
 
7
  function __construct() {
8
  parent::__construct(array(
40
  $actions = array(
41
  'bulk_delete' => SwpmUtils::_('Delete'),
42
  'bulk_active' => SwpmUtils::_('Set Status to Active'),
43
+ 'bulk_active_notify' => SwpmUtils::_('Set Status to Active and Notify'),
44
  'bulk_inactive' => SwpmUtils::_('Set Status to Inactive'),
45
  'bulk_pending' => SwpmUtils::_('Set Status to Pending'),
46
  'bulk_expired' => SwpmUtils::_('Set Status to Expired'),
60
  );
61
  return $item['member_id'] . $this->row_actions($actions);
62
  }
63
+
64
+ function column_user_name($item) {
65
+ $user_name = $item['user_name'];
66
+ if(empty($user_name)){
67
+ $user_name = '['.SwpmUtils::_('incomplete').']';
68
+ }
69
+ return $user_name;
70
+ }
71
 
72
  function column_cb($item) {
73
  return sprintf(
79
  global $wpdb;
80
 
81
  $this->process_bulk_action();
82
+
83
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_members_tbl";
84
  $query .= " LEFT JOIN " . $wpdb->prefix . "swpm_membership_tbl";
85
  $query .= " ON ( membership_level = id ) ";
86
  $s = filter_input(INPUT_POST, 's');
87
+ $status = filter_input(INPUT_GET, 'status');
88
+ $filter1 = '';
89
+
90
+ //Add the search parameter to the query
91
  if (!empty($s)) {
92
+ $s = trim($s);//Trim the input
93
+ $filter1 .= "( user_name LIKE '%" . strip_tags($s) . "%' "
94
  . " OR first_name LIKE '%" . strip_tags($s) . "%' "
95
  . " OR last_name LIKE '%" . strip_tags($s) . "%' "
96
  . " OR email LIKE '%" . strip_tags($s) . "%' "
97
  . " OR address_city LIKE '%" . strip_tags($s) . "%' "
98
  . " OR address_state LIKE '%" . strip_tags($s) . "%' "
99
  . " OR country LIKE '%" . strip_tags($s) . "%' "
100
+ . " OR company_name LIKE '%" . strip_tags($s) . "%' )";
101
  }
102
+
103
+ //Add account status filtering to the query
104
+ $filter2 = '';
105
+ if (!empty($status)){
106
+ if ($status == 'incomplete') {
107
+ $filter2 .= "user_name = ''";
108
+ } else {
109
+ $filter2 .= "account_state = '" . $status . "'";
110
+ }
111
+ }
112
+
113
+ //Build the WHERE clause of the query string
114
+ if (!empty($filter1) && !empty($filter2)){
115
+ $query .= "WHERE " . $filter1 . " AND " . $filter2;
116
+ }
117
+ else if (!empty($filter1)){
118
+ $query .= "WHERE " . $filter1 ;
119
+ }
120
+ else if (!empty($filter2)){
121
+ $query .= "WHERE " . $filter2 ;
122
+ }
123
+
124
+ //Build the orderby and order query parameters
125
  $orderby = filter_input(INPUT_GET, 'orderby');
126
  $orderby = empty($orderby) ? 'member_id' : $orderby;
127
  $order = filter_input(INPUT_GET, 'order');
128
  $order = empty($order) ? 'DESC' : $order;
 
129
  $sortable_columns = $this->get_sortable_columns();
130
  $orderby = SwpmUtils::sanitize_value_by_array($orderby, $sortable_columns);
131
  $order = SwpmUtils::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
 
132
  $query.=' ORDER BY ' . $orderby . ' ' . $order;
133
+
134
+ //Execute the query
135
  $totalitems = $wpdb->query($query); //return the total number of affected rows
136
+
137
+ //Pagination setup
138
  $perpage = 20;
139
  $paged = filter_input(INPUT_GET, 'paged');
140
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
158
  $this->_column_headers = array($columns, $hidden, $sortable);
159
  $this->items = $wpdb->get_results($query, ARRAY_A);
160
  }
161
+
162
+ function get_user_count_by_account_state(){
163
+ global $wpdb;
164
+ $query = "SELECT count(member_id) AS count, account_state FROM " . $wpdb->prefix . "swpm_members_tbl GROUP BY account_state";
165
+ $result = $wpdb->get_results($query, ARRAY_A);
166
+ $count = array();
167
+
168
+ $all = 0;
169
+ foreach($result as $row){
170
+ $count[$row["account_state"]] = $row["count"];
171
+ $all += intval($row['count']);
172
+ }
173
+ $count ["all"] = $all;
174
+
175
+ $count_incomplete_query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "swpm_members_tbl WHERE user_name = ''";
176
+ $count['incomplete'] = $wpdb->get_var($count_incomplete_query);
177
+
178
+ return $count;
179
+ }
180
+
181
  function no_items() {
182
+ _e('No member found.');
183
  }
184
 
185
  function process_form_request() {
229
  }
230
 
231
  function process_bulk_action() {
232
+ //Detect when a bulk action is being triggered... then perform the action.
233
  $members = isset($_REQUEST['members'])? $_REQUEST['members']: array();
234
+
235
  $current_action = $this->current_action();
236
+ if(!empty($current_action)){
237
+ //Bulk operation action. Lets make sure multiple records were selected before going ahead.
238
  if (empty($members)) {
239
+ echo '<div id="message" class="error"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
240
  return;
241
+ }
242
+ }else{
243
+ //No bulk operation.
244
+ return;
245
+ }
246
+
247
+ //perform the bulk operation according to the selection
248
+ if ('bulk_delete' === $current_action) {
249
  foreach ($members as $record_id) {
250
  SwpmMembers::delete_user_by_id($record_id);
251
  }
252
  echo '<div id="message" class="updated fade"><p>Selected records deleted successfully!</p></div>';
253
+ return;
254
  }
255
  else if ('bulk_active' === $current_action){
256
  $this->bulk_set_status($members, 'active');
266
  }
267
  else if ('bulk_expired' == $current_action){
268
  $this->bulk_set_status($members, 'expired');
269
+ }
270
+
271
+ echo '<div id="message" class="updated fade"><p>Bulk operation completed successfully!</p></div>';
272
  }
273
 
274
  function bulk_set_status($members, $status, $notify = false ){
280
  $wpdb->query($query);
281
 
282
  if ($notify){
283
+ $settings = SwpmSettings::get_instance();
284
+
285
+ $emails = $wpdb->get_col("SELECT email FROM " . $wpdb->prefix . "swpm_members_tbl " . " WHERE member_id IN ( $ids ) ");
286
+
287
+ $subject = $settings->get_value('bulk-activate-notify-mail-subject');
288
+ if (empty($subject)) {
289
+ $subject = "Account Activated!";
290
+ }
291
+ $body = $settings->get_value('bulk-activate-notify-mail-body');
292
+ if (empty($body)) {
293
+ $body = "Hi, Your account has been activated successfully!";
294
+ }
295
+
296
+ $from_address = $settings->get_value('email-from');
297
+ $to_email_list = implode(',', $emails);
298
+ $headers = 'From: ' . $from_address . "\r\n";
299
+ $headers .= 'bcc: ' . $to_email_list . "\r\n";
300
+ wp_mail(array()/* $email_list */, $subject, $body, $headers);
301
+ SwpmLog::log_simple_debug("Bulk activation email notification sent. Activation email sent to the following email: " . $to_email_list, true);
302
  }
303
  }
304
 
310
  }
311
 
312
  public static function delete_user_by_id($id) {
313
+ $swpm_user = SwpmMemberUtils::get_user_by_id($id);
314
+ $user_name = $swpm_user->user_name;
315
+ SwpmMembers::delete_wp_user($user_name);//Deletes the WP User record
316
+ SwpmMembers::delete_swpm_user_by_id($id);//Deletes the SWPM record
317
  }
318
 
319
  public static function delete_swpm_user_by_id($id) {
324
 
325
  function show() {
326
  ob_start();
327
+ $status = filter_input(INPUT_GET, 'status');
328
  include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_members_list.php');
329
  $output = ob_get_clean();
330
  return $output;
classes/class.swpm-membership-levels.php CHANGED
@@ -43,7 +43,8 @@ class SwpmMembershipLevels extends WP_List_Table {
43
  return 'No Expiry';
44
  }
45
  if ($item['subscription_duration_type'] == SwpmMembershipLevel::FIXED_DATE) {
46
- return date(get_option('date_format'), strtotime($item['subscription_period']));
 
47
  }
48
  if ($item['subscription_duration_type'] == SwpmMembershipLevel::DAYS) {
49
  return $item['subscription_period'] . " Day(s)";
43
  return 'No Expiry';
44
  }
45
  if ($item['subscription_duration_type'] == SwpmMembershipLevel::FIXED_DATE) {
46
+ $formatted_date = SwpmUtils::get_formatted_date_according_to_wp_settings($item['subscription_period']);
47
+ return $formatted_date;
48
  }
49
  if ($item['subscription_duration_type'] == SwpmMembershipLevel::DAYS) {
50
  return $item['subscription_period'] . " Day(s)";
classes/class.swpm-settings.php CHANGED
@@ -44,7 +44,9 @@ class SwpmSettings {
44
  add_settings_field('enable-moretag', SwpmUtils::_('Enable More Tag Protection'), array(&$this, 'checkbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'enable-moretag',
45
  'message' => SwpmUtils::_('Enables or disables "more" tag protection in the posts and pages. Anything after the More tag is protected. Anything before the more tag is teaser content.')));
46
  add_settings_field('hide-adminbar', SwpmUtils::_('Hide Adminbar'), array(&$this, 'checkbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'hide-adminbar',
47
- 'message' => SwpmUtils::_('WordPress shows an admin toolbar to the logged in users of the site. Check this box if you want to hide that admin toolbar in the fronend of your site.')));
 
 
48
 
49
  add_settings_field('default-account-status', SwpmUtils::_('Default Account Status'), array(&$this, 'selectbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'default-account-status',
50
  'options' => SwpmUtils::get_account_state_options(),
@@ -122,17 +124,18 @@ class SwpmSettings {
122
  'message' => ''));
123
 
124
  add_settings_section('reset-password-settings', SwpmUtils::_('Email Settings (Password Reset)'), array(&$this, 'reset_password_settings_callback'), 'simple_wp_membership_settings');
125
- add_settings_field('reset-mail-subject', SwpmUtils::_('Email Subject'), array(&$this, 'textfield_callback'), 'simple_wp_membership_settings', 'reset-password-settings', array('item' => 'reset-mail-subject',
126
- 'message' => ''));
127
- add_settings_field('reset-mail-body', SwpmUtils::_('Email Body'), array(&$this, 'textarea_callback'), 'simple_wp_membership_settings', 'reset-password-settings', array('item' => 'reset-mail-body',
128
- 'message' => ''));
129
 
130
 
131
  add_settings_section('upgrade-email-settings', SwpmUtils::_(' Email Settings (Account Upgrade Notification)'), array(&$this, 'upgrade_email_settings_callback'), 'simple_wp_membership_settings');
132
- add_settings_field('upgrade-complete-mail-subject', SwpmUtils::_('Email Subject'), array(&$this, 'textfield_callback'), 'simple_wp_membership_settings', 'upgrade-email-settings', array('item' => 'upgrade-complete-mail-subject',
133
- 'message' => ''));
134
- add_settings_field('upgrade-complete-mail-body', SwpmUtils::_('Email Body'), array(&$this, 'textarea_callback'), 'simple_wp_membership_settings', 'upgrade-email-settings', array('item' => 'upgrade-complete-mail-body',
135
- 'message' => ''));
 
 
 
136
  }
137
 
138
  private function tab_4() {
@@ -272,6 +275,10 @@ class SwpmSettings {
272
  SwpmUtils::e('This email will be sent to your users after account upgrade (when an existing member pays for a new membership level).');
273
  }
274
 
 
 
 
 
275
  public function reg_prompt_email_settings_callback() {
276
  SwpmUtils::e('This email will be sent to prompt users to complete registration after the payment.');
277
  }
@@ -288,6 +295,8 @@ class SwpmSettings {
288
  //general settings block
289
 
290
  $output['hide-adminbar'] = isset($input['hide-adminbar']) ? esc_attr($input['hide-adminbar']) : "";
 
 
291
  $output['protect-everything'] = isset($input['protect-everything']) ? esc_attr($input['protect-everything']) : "";
292
  $output['enable-free-membership'] = isset($input['enable-free-membership']) ? esc_attr($input['enable-free-membership']) : "";
293
  $output['enable-moretag'] = isset($input['enable-moretag']) ? esc_attr($input['enable-moretag']) : "";
@@ -316,10 +325,12 @@ class SwpmSettings {
316
  $output['reset-mail-subject'] = sanitize_text_field($input['reset-mail-subject']);
317
  $output['reset-mail-body'] = wp_kses_data(force_balance_tags($input['reset-mail-body']));
318
 
319
-
320
  $output['upgrade-complete-mail-subject'] = sanitize_text_field($input['upgrade-complete-mail-subject']);
321
  $output['upgrade-complete-mail-body'] = wp_kses_data(force_balance_tags($input['upgrade-complete-mail-body']));
322
 
 
 
 
323
  $output['reg-prompt-complete-mail-subject'] = sanitize_text_field($input['reg-prompt-complete-mail-subject']);
324
  $output['reg-prompt-complete-mail-body'] = wp_kses_data(force_balance_tags($input['reg-prompt-complete-mail-body']));
325
  $output['email-from'] = trim($input['email-from']);
44
  add_settings_field('enable-moretag', SwpmUtils::_('Enable More Tag Protection'), array(&$this, 'checkbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'enable-moretag',
45
  'message' => SwpmUtils::_('Enables or disables "more" tag protection in the posts and pages. Anything after the More tag is protected. Anything before the more tag is teaser content.')));
46
  add_settings_field('hide-adminbar', SwpmUtils::_('Hide Adminbar'), array(&$this, 'checkbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'hide-adminbar',
47
+ 'message' => SwpmUtils::_('WordPress shows an admin toolbar to the logged in users of the site. Check this if you want to hide that admin toolbar in the frontend of your site.')));
48
+ add_settings_field('show-adminbar-admin-only', SwpmUtils::_('Show Adminbar to Admin'), array(&$this, 'checkbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'show-adminbar-admin-only',
49
+ 'message' => SwpmUtils::_('Use this option if you want to show the admin toolbar to admin users only. The admin toolbar will be hidden for all other users.')));
50
 
51
  add_settings_field('default-account-status', SwpmUtils::_('Default Account Status'), array(&$this, 'selectbox_callback'), 'simple_wp_membership_settings', 'general-settings', array('item' => 'default-account-status',
52
  'options' => SwpmUtils::get_account_state_options(),
124
  'message' => ''));
125
 
126
  add_settings_section('reset-password-settings', SwpmUtils::_('Email Settings (Password Reset)'), array(&$this, 'reset_password_settings_callback'), 'simple_wp_membership_settings');
127
+ add_settings_field('reset-mail-subject', SwpmUtils::_('Email Subject'), array(&$this, 'textfield_callback'), 'simple_wp_membership_settings', 'reset-password-settings', array('item' => 'reset-mail-subject', 'message' => ''));
128
+ add_settings_field('reset-mail-body', SwpmUtils::_('Email Body'), array(&$this, 'textarea_callback'), 'simple_wp_membership_settings', 'reset-password-settings', array('item' => 'reset-mail-body', 'message' => ''));
 
 
129
 
130
 
131
  add_settings_section('upgrade-email-settings', SwpmUtils::_(' Email Settings (Account Upgrade Notification)'), array(&$this, 'upgrade_email_settings_callback'), 'simple_wp_membership_settings');
132
+ add_settings_field('upgrade-complete-mail-subject', SwpmUtils::_('Email Subject'), array(&$this, 'textfield_callback'), 'simple_wp_membership_settings', 'upgrade-email-settings', array('item' => 'upgrade-complete-mail-subject', 'message' => ''));
133
+ add_settings_field('upgrade-complete-mail-body', SwpmUtils::_('Email Body'), array(&$this, 'textarea_callback'), 'simple_wp_membership_settings', 'upgrade-email-settings', array('item' => 'upgrade-complete-mail-body', 'message' => ''));
134
+
135
+ add_settings_section('bulk-activate-email-settings', SwpmUtils::_(' Email Settings (Bulk Account Activate Notification)'), array(&$this, 'bulk_activate_email_settings_callback'), 'simple_wp_membership_settings');
136
+ add_settings_field('bulk-activate-notify-mail-subject', SwpmUtils::_('Email Subject'), array(&$this, 'textfield_callback'), 'simple_wp_membership_settings', 'bulk-activate-email-settings', array('item' => 'bulk-activate-notify-mail-subject', 'message' => ''));
137
+ add_settings_field('bulk-activate-notify-mail-body', SwpmUtils::_('Email Body'), array(&$this, 'textarea_callback'), 'simple_wp_membership_settings', 'bulk-activate-email-settings', array('item' => 'bulk-activate-notify-mail-body', 'message' => ''));
138
+
139
  }
140
 
141
  private function tab_4() {
275
  SwpmUtils::e('This email will be sent to your users after account upgrade (when an existing member pays for a new membership level).');
276
  }
277
 
278
+ public function bulk_activate_email_settings_callback() {
279
+ SwpmUtils::e('This email will be sent to your members when you use the bulk account activate and notify action.');
280
+ }
281
+
282
  public function reg_prompt_email_settings_callback() {
283
  SwpmUtils::e('This email will be sent to prompt users to complete registration after the payment.');
284
  }
295
  //general settings block
296
 
297
  $output['hide-adminbar'] = isset($input['hide-adminbar']) ? esc_attr($input['hide-adminbar']) : "";
298
+ $output['show-adminbar-admin-only'] = isset($input['show-adminbar-admin-only']) ? esc_attr($input['show-adminbar-admin-only']) : "";
299
+
300
  $output['protect-everything'] = isset($input['protect-everything']) ? esc_attr($input['protect-everything']) : "";
301
  $output['enable-free-membership'] = isset($input['enable-free-membership']) ? esc_attr($input['enable-free-membership']) : "";
302
  $output['enable-moretag'] = isset($input['enable-moretag']) ? esc_attr($input['enable-moretag']) : "";
325
  $output['reset-mail-subject'] = sanitize_text_field($input['reset-mail-subject']);
326
  $output['reset-mail-body'] = wp_kses_data(force_balance_tags($input['reset-mail-body']));
327
 
 
328
  $output['upgrade-complete-mail-subject'] = sanitize_text_field($input['upgrade-complete-mail-subject']);
329
  $output['upgrade-complete-mail-body'] = wp_kses_data(force_balance_tags($input['upgrade-complete-mail-body']));
330
 
331
+ $output['bulk-activate-notify-mail-subject'] = sanitize_text_field($input['bulk-activate-notify-mail-subject']);
332
+ $output['bulk-activate-notify-mail-body'] = wp_kses_data(force_balance_tags($input['bulk-activate-notify-mail-body']));
333
+
334
  $output['reg-prompt-complete-mail-subject'] = sanitize_text_field($input['reg-prompt-complete-mail-subject']);
335
  $output['reg-prompt-complete-mail-body'] = wp_kses_data(force_balance_tags($input['reg-prompt-complete-mail-body']));
336
  $output['email-from'] = trim($input['email-from']);
classes/class.swpm-transactions.php CHANGED
@@ -29,6 +29,7 @@ class SwpmTransactions {
29
  $txn_data['gateway'] = $ipn_data['gateway'];
30
  $txn_data['status'] = $ipn_data['status'];
31
 
 
32
  $wpdb->insert($wpdb->prefix . "swpm_payments_tbl", $txn_data);
33
 
34
  }
29
  $txn_data['gateway'] = $ipn_data['gateway'];
30
  $txn_data['status'] = $ipn_data['status'];
31
 
32
+ $txn_data = array_filter($txn_data);//Remove any null values.
33
  $wpdb->insert($wpdb->prefix . "swpm_payments_tbl", $txn_data);
34
 
35
  }
classes/{class.swpm-member-utils.php → class.swpm-utils-member.php} RENAMED
@@ -1,9 +1,8 @@
1
  <?php
2
 
3
  /**
4
- * BMemberUtils
5
- *
6
- * @author nur
7
  */
8
  class SwpmMemberUtils {
9
 
@@ -58,7 +57,34 @@ class SwpmMemberUtils {
58
 
59
  return apply_filters('swpm_get_member_field_by_id', $default, $id, $field);
60
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  public static function is_valid_user_name($user_name){
62
  return preg_match("/^[a-zA-Z0-9!@#$%&+\/=?^_`{|}~\.-]+$/", $user_name)== 1;
63
  }
 
64
  }
1
  <?php
2
 
3
  /**
4
+ * SwpmMemberUtils
5
+ * All the utility functions related to member records should be added to this class
 
6
  */
7
  class SwpmMemberUtils {
8
 
57
 
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;
65
+ $query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE member_id = %d", $swpm_id);
66
+ $result = $wpdb->get_row($query);
67
+ return $result;
68
+ }
69
+
70
+ public static function get_user_by_user_name($swpm_user_name) {
71
+ //Retrieves the SWPM user record for the given member username
72
+ global $wpdb;
73
+ $query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE user_name = %s", $swpm_user_name);
74
+ $result = $wpdb->get_row($query);
75
+ return $result;
76
+ }
77
+
78
+ public static function get_user_by_email($swpm_email) {
79
+ //Retrieves the SWPM user record for the given member email address
80
+ global $wpdb;
81
+ $query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE email = %d", $swpm_email);
82
+ $result = $wpdb->get_row($query);
83
+ return $result;
84
+ }
85
+
86
  public static function is_valid_user_name($user_name){
87
  return preg_match("/^[a-zA-Z0-9!@#$%&+\/=?^_`{|}~\.-]+$/", $user_name)== 1;
88
  }
89
+
90
  }
classes/{class.swpm-misc-utils.php → class.swpm-utils-misc.php} RENAMED
File without changes
classes/class.swpm-utils.php CHANGED
@@ -95,19 +95,18 @@ abstract class SwpmUtils {
95
  $query = "SELECT id FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id != 1";
96
  return $wpdb->get_col($query);
97
  }
98
-
99
- public static function get_user_by_id($swpm_id) {
100
- global $wpdb;
101
- $query = $wpdb->prepare("SELECT user_name FROM {$wpdb->prefix}swpm_members_tbl WHERE member_id = %d", $swpm_id);
102
- return $wpdb->get_var($query);
103
- }
104
-
105
- public static function get_user_by_user_name($swpm_user_name) {
106
- global $wpdb;
107
- $query = $wpdb->prepare("SELECT member_id FROM {$wpdb->prefix}swpm_members_tbl WHERE user_name = %s", $swpm_user_name);
108
- return $wpdb->get_var($query);
109
  }
110
-
111
  public static function get_registration_link($for = 'all', $send_email = false, $member_id = '') {
112
  $members = array();
113
  global $wpdb;
@@ -289,17 +288,37 @@ abstract class SwpmUtils {
289
  }
290
 
291
  public static function get_expire_date($start_date, $subscription_duration, $subscription_duration_type) {
292
- if ($subscription_duration_type == SwpmMembershipLevel::FIXED_DATE) { //will expire after a fixed date.
293
- return date(get_option('date_format'), strtotime($subscription_duration));
 
294
  }
 
295
  $expires = self::calculate_subscription_period_days($subscription_duration, $subscription_duration_type);
296
- if ($expires == 'noexpire') {// its set to no expiry until cancelled
 
297
  return SwpmUtils::_('Never');
298
  }
299
 
 
 
300
  return date(get_option('date_format'), strtotime($start_date . ' ' . $expires . ' days'));
301
  }
302
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
303
  public static function swpm_username_exists($user_name) {
304
  global $wpdb;
305
  $member_table = $wpdb->prefix . 'swpm_members_tbl';
@@ -368,7 +387,10 @@ abstract class SwpmUtils {
368
  return "";
369
  }
370
 
371
- return '<a href="/?delete_account=1"><div class="swpm-account-delete-button">' . SwpmUtils::_("Delete Account") . '</div></a>';
 
 
 
372
  }
373
 
374
  public static function encrypt_password($plain_password) {
95
  $query = "SELECT id FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id != 1";
96
  return $wpdb->get_col($query);
97
  }
98
+
99
+ public static function membership_level_id_exists($level_id){
100
+ //Returns true if the specified membership level exists in the system. Returns false if the level has been deleted (or doesn't exist).
101
+ $all_level_ids = SwpmUtils::get_all_membership_level_ids();
102
+ if (in_array($level_id, $all_level_ids)) {
103
+ //Valid level ID
104
+ return true;
105
+ } else {
106
+ return false;
107
+ }
 
108
  }
109
+
110
  public static function get_registration_link($for = 'all', $send_email = false, $member_id = '') {
111
  $members = array();
112
  global $wpdb;
288
  }
289
 
290
  public static function get_expire_date($start_date, $subscription_duration, $subscription_duration_type) {
291
+ if ($subscription_duration_type == SwpmMembershipLevel::FIXED_DATE) {
292
+ //Membership will expire after a fixed date.
293
+ return SwpmUtils::get_formatted_date_according_to_wp_settings($subscription_duration);
294
  }
295
+
296
  $expires = self::calculate_subscription_period_days($subscription_duration, $subscription_duration_type);
297
+ if ($expires == 'noexpire') {
298
+ //Membership is set to no expiry or until cancelled.
299
  return SwpmUtils::_('Never');
300
  }
301
 
302
+ //Membership is set to a duration expiry settings.
303
+
304
  return date(get_option('date_format'), strtotime($start_date . ' ' . $expires . ' days'));
305
  }
306
 
307
+ /*
308
+ * 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.
309
+ */
310
+ public static function get_formatted_date_according_to_wp_settings($date){
311
+ $date_format = get_option('date_format');
312
+ if (empty($date_format)) {
313
+ //WordPress's date form settings is not set. Lets set a default format.
314
+ $date_format = 'Y-m-d';
315
+ }
316
+
317
+ $date_obj = new DateTime($date);
318
+ $formatted_date = $date_obj->format($date_format);//Format the date value using date format settings
319
+ return $formatted_date;
320
+ }
321
+
322
  public static function swpm_username_exists($user_name) {
323
  global $wpdb;
324
  $member_table = $wpdb->prefix . 'swpm_members_tbl';
387
  return "";
388
  }
389
 
390
+ $account_delete_link = '<div class="swpm-profile-account-delete-section">';
391
+ $account_delete_link .= '<a href="'.SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL.'/?swpm_delete_account=1"><div class="swpm-account-delete-button">' . SwpmUtils::_("Delete Account") . '</div></a>';
392
+ $account_delete_link .= '</div>';
393
+ return $account_delete_link;
394
  }
395
 
396
  public static function encrypt_password($plain_password) {
css/swpm.common.css CHANGED
@@ -53,6 +53,16 @@
53
  border-width: 1px;
54
  }
55
 
 
 
 
 
 
 
 
 
 
 
56
  /* Login form CSS */
57
  .swpm-login-widget-form input,.swpm-login-widget-form checkbox{
58
  width: auto;
@@ -91,15 +101,17 @@
91
  }
92
 
93
  /* Edit profile form CSS */
94
- .swpm-account-delete-button{
95
- text-align: center;
96
- }
97
-
98
  .swpm-edit-profile-form input[type="text"], .swpm-edit-profile-form input[type="password"]{
99
  width: 95%;
100
  }
 
 
 
101
 
102
- .swpm-account-delete-button a{
 
 
 
103
  color: red !important;
104
  }
105
 
53
  border-width: 1px;
54
  }
55
 
56
+ /* Membership buy buttons */
57
+ .swpm-button-wrapper input[type="submit"]{
58
+ width: auto !important;
59
+ height: auto !important;
60
+ }
61
+ .swpm-button-wrapper input[type="image"]{
62
+ width: auto !important;
63
+ height: auto !important;
64
+ }
65
+
66
  /* Login form CSS */
67
  .swpm-login-widget-form input,.swpm-login-widget-form checkbox{
68
  width: auto;
101
  }
102
 
103
  /* Edit profile form CSS */
 
 
 
 
104
  .swpm-edit-profile-form input[type="text"], .swpm-edit-profile-form input[type="password"]{
105
  width: 95%;
106
  }
107
+ .swpm-edit-profile-submit-section{
108
+ text-align: center;
109
+ }
110
 
111
+ .swpm-profile-account-delete-section{
112
+ text-align: center;
113
+ }
114
+ .swpm-profile-account-delete-section a{
115
  color: red !important;
116
  }
117
 
images/addons/google-recaptcha-addon.png ADDED
Binary file
images/addons/swpm-bbpress-integration.png ADDED
Binary file
ipn/swpm_handle_subsc_ipn.php CHANGED
@@ -101,6 +101,7 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
101
  $data['subscr_id'] = $subscr_id;
102
  $data['last_accessed_from_ip'] = isset($user_ip) ? $user_ip : ''; //Save the users IP address
103
 
 
104
  $wpdb->insert($members_table_name, $data); //Create the member record
105
  $results = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s and reg_code=%s", $subscr_id, $md5_code), OBJECT);
106
  $id = $results->member_id; //Alternatively use $wpdb->insert_id;
101
  $data['subscr_id'] = $subscr_id;
102
  $data['last_accessed_from_ip'] = isset($user_ip) ? $user_ip : ''; //Save the users IP address
103
 
104
+ $data = array_filter($data);//Remove any null values.
105
  $wpdb->insert($members_table_name, $data); //Create the member record
106
  $results = $wpdb->get_row($wpdb->prepare("SELECT * FROM $members_table_name where subscr_id=%s and reg_code=%s", $subscr_id, $md5_code), OBJECT);
107
  $id = $results->member_id; //Alternatively use $wpdb->insert_id;
languages/swpm-pt_BR.mo CHANGED
Binary file
languages/swpm-pt_BR.po CHANGED
@@ -1,644 +1,1122 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: simple membership\n"
4
- "POT-Creation-Date: 2014-08-28 19:28+1000\n"
5
- "PO-Revision-Date: 2015-04-11 11:19-0300\n"
6
- "Last-Translator: \n"
7
- "Language-Team: \n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "X-Generator: Poedit 1.7.5\n"
12
  "X-Poedit-KeywordsList: __;_e\n"
13
  "X-Poedit-Basepath: .\n"
 
14
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
15
  "Language: pt_BR\n"
16
  "X-Poedit-SearchPath-0: .\n"
17
 
18
- #: classes/class.bAccessControl.php:23 classes/class.bAccessControl.php:40
19
- msgid "You are not allowed to view this content"
20
- msgstr "Você não tem permissão para visualizar este conteúdo"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
- #: classes/class.bAccessControl.php:26 classes/class.bAccessControl.php:43
 
 
 
 
 
 
23
  msgid "You need to login to view this content. "
24
- msgstr "Você precisa fazer o login para visualizar este conteúdo. "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- #: classes/class.bAdminRegistration.php:48
27
- #: classes/class.bFrontRegistration.php:64
28
- msgid "Registration Successful."
29
- msgstr "Registo bem sucedido."
 
 
 
 
 
30
 
31
- #: classes/class.bAdminRegistration.php:53
32
- #: classes/class.bAdminRegistration.php:73
33
- #: classes/class.bMembershipLevel.php:36 classes/class.bMembershipLevel.php:54
 
 
 
 
 
 
 
 
 
 
 
 
34
  msgid "Please correct the following:"
35
- msgstr "Corrija o seguinte:"
 
 
 
 
36
 
37
- #: classes/class.bAjax.php:16 classes/class.bAjax.php:28
 
 
 
 
38
  msgid "Aready taken"
39
- msgstr " em uso"
 
 
 
 
40
 
41
- #: classes/class.bAjax.php:29
42
  msgid "Available"
43
  msgstr "Disponível"
44
 
45
- #: classes/class.bAuth.php:48 classes/class.bFrontRegistration.php:179
46
  msgid "User Not Found."
47
- msgstr "Usuário não encontrado."
48
 
49
- #: classes/class.bAuth.php:55
50
  msgid "Password Empty or Invalid."
51
- msgstr "Senha vazia ou inválida."
52
 
53
- #: classes/class.bAuth.php:79
54
  msgid "Account is inactive."
55
- msgstr "A conta está inativa."
 
 
 
 
56
 
57
- #: classes/class.bAuth.php:89
 
 
 
 
58
  msgid "You are logged in as:"
59
  msgstr "Você está logado como:"
60
 
61
- #: classes/class.bAuth.php:128
62
  msgid "Logged Out Successfully."
63
- msgstr "Desconectado com sucesso."
64
 
65
- #: classes/class.bAuth.php:170
66
  msgid "Session Expired."
67
  msgstr "Sessão expirada."
68
 
69
- #: classes/class.bAuth.php:179
70
- msgid "Invalid User Name"
71
- msgstr "Nome de Usuário Inválido"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
 
73
- #: classes/class.bAuth.php:187
74
- msgid "Bad Cookie Hash"
75
- msgstr "Bad Cookie Hash"
76
 
77
- #: classes/class.bForm.php:26
 
 
 
 
78
  msgid ""
79
- "Wordpress account exists with given user name. But given email doesn't match."
80
  msgstr ""
81
- " existe conta Wordpress com o nome de usuário fornecido. Mas o e-mail dado "
82
- "não corresponde."
83
 
84
- #: classes/class.bForm.php:31
85
  msgid ""
86
- "Wordpress account exists with given email. But given user name doesn't match."
87
  msgstr ""
88
- " existe conta Wordpress com o e-mail fornecido. Mas o nome de usuário dado "
89
- "não corresponde."
 
 
 
 
90
 
91
- #: classes/class.bForm.php:40
92
- msgid "User name is required"
93
- msgstr "O nome de usuário é obrigatório"
94
 
95
- #: classes/class.bForm.php:49
96
- msgid "User name already exists."
97
- msgstr "Nome do usuário já existe."
98
 
99
- #: classes/class.bForm.php:72
100
  msgid "Password is required"
101
- msgstr "A senha é requerida"
102
 
103
- #: classes/class.bForm.php:79
104
  msgid "Password mismatch"
105
- msgstr "Senha incompatível"
106
 
107
- #: classes/class.bForm.php:95
108
  msgid "Email is required"
109
- msgstr "O e-mail é obrigatório"
110
 
111
- #: classes/class.bForm.php:99
112
  msgid "Email is invalid"
113
- msgstr "O e-mail é inválido"
114
 
115
- #: classes/class.bForm.php:112
116
  msgid "Email is already used."
117
- msgstr "O e-mailestá sendo usado."
118
 
119
- #: classes/class.bForm.php:178
120
  msgid "Member since field is invalid"
121
- msgstr "Campo Membro desde é inválido"
122
 
123
- #: classes/class.bForm.php:189
124
- msgid "Subscription starts field is invalid"
125
- msgstr "Campo Início de Assinatura é inválido"
126
 
127
- #: classes/class.bForm.php:199
128
  msgid "Gender field is invalid"
129
- msgstr "Campo Sexo é inválido"
130
 
131
- #: classes/class.bForm.php:210
132
  msgid "Account state field is invalid"
133
- msgstr "Campo de Status da Conta é inválido"
 
 
 
 
 
 
 
 
 
 
 
 
134
 
135
- #: classes/class.bFrontRegistration.php:64 classes/class.bSettings.php:326
 
136
  msgid "Please"
137
- msgstr "Por favor"
138
 
139
- #: classes/class.bFrontRegistration.php:64 classes/class.bSettings.php:326
140
- #: views/login.php:21
141
  msgid "Login"
142
- msgstr "Entrar"
143
 
144
- #: classes/class.bFrontRegistration.php:79
145
- #: classes/class.bFrontRegistration.php:158
146
  msgid "Please correct the following"
147
- msgstr "Corrija o seguinte"
148
 
149
- #: classes/class.bFrontRegistration.php:92
150
  msgid "Membership Level Couldn't be found."
151
- msgstr "Nível de Associação não pôde ser encontrado."
 
 
 
 
 
 
 
 
 
 
 
 
152
 
153
- #: classes/class.bFrontRegistration.php:168
154
- msgid "Email Address Not Valid."
155
- msgstr "O endereço de e-mail não é válido."
156
 
157
- #: classes/class.bFrontRegistration.php:199
 
 
 
 
 
 
 
 
 
158
  msgid "New password has been sent to your email address."
159
- msgstr "Nova senha foi enviada para o seu endereço de e-mail."
160
 
161
- #: classes/class.bLevelForm.php:31
162
- msgid "Subscriptoin duration must be > 0."
163
- msgstr "Duração da assinatura deve ser > 0 ."
164
 
165
- #: classes/class.bMembers.php:7
166
- msgid "Member"
167
- msgstr "Usuário"
168
 
169
- #: classes/class.bMembers.php:8 classes/class.simple-wp-membership.php:467
170
- msgid "Members"
171
- msgstr "Usuários"
172
 
173
- #: classes/class.bMembers.php:16 classes/class.bMembershipLevels.php:16
174
- msgid "ID"
175
- msgstr ""
176
 
177
- #: classes/class.bMembers.php:17 views/add.php:5 views/edit.php:4
178
- #: views/login.php:5
179
- msgid "User Name"
180
- msgstr "Nome de Usuário"
 
 
181
 
182
- #: classes/class.bMembers.php:18 views/add.php:21
183
- #: views/admin_member_form_common_part.php:2 views/edit.php:20
 
 
 
 
 
 
 
 
 
 
 
184
  msgid "First Name"
185
- msgstr "Primeiro Nome"
186
 
187
- #: classes/class.bMembers.php:19 views/add.php:25
188
- #: views/admin_member_form_common_part.php:6 views/edit.php:24
 
 
189
  msgid "Last Name"
190
  msgstr "Sobrenome"
191
 
192
- #: classes/class.bMembers.php:20 views/add.php:9 views/edit.php:8
193
  msgid "Email"
194
- msgstr "E-mail"
195
 
196
- #: classes/class.bMembers.php:21 classes/class.bMembershipLevels.php:8
197
- #: classes/class.bMembershipLevels.php:17 views/add.php:64
198
- #: views/admin_member_form_common_part.php:55 views/edit.php:52
199
- msgid "Membership Level"
200
- msgstr "Nível de Associação"
201
-
202
- #: classes/class.bMembers.php:22 views/admin_member_form_common_part.php:78
203
- msgid "Subscription Starts"
204
- msgstr "Início da Assinatura"
205
 
206
- #: classes/class.bMembers.php:23
207
  msgid "Account State"
208
- msgstr "Status da Conta"
209
 
210
- #: classes/class.bMembers.php:35 classes/class.bMembershipLevels.php:29
 
 
 
211
  msgid "Delete"
212
- msgstr "Excluir"
 
 
 
 
 
 
 
 
213
 
214
- #: classes/class.bMembers.php:100
 
 
 
 
 
 
 
 
215
  msgid "No Member found."
216
- msgstr "Nenhum membro encontrado."
217
 
218
- #: classes/class.bMembershipLevel.php:31
219
  msgid "Membership Level Creation Successful."
220
- msgstr "Nível de Associação criado com sucesso,"
221
 
222
- #: classes/class.bMembershipLevel.php:50
223
  msgid "Updated Successfully."
224
- msgstr "Atualizado com sucesso."
225
-
226
- #: classes/class.bMembershipLevels.php:9
227
- #: classes/class.simple-wp-membership.php:469
228
- msgid "Membership Levels"
229
- msgstr "Níveis de Associação"
230
 
231
- #: classes/class.bMembershipLevels.php:18
232
  msgid "Role"
233
- msgstr "A função"
234
 
235
- #: classes/class.bMembershipLevels.php:19
236
- msgid "Subscription Valid For"
237
- msgstr "Assinatura válida para"
238
 
239
- #: classes/class.bSettings.php:28
240
- msgid "Plugin Documentation"
241
- msgstr "Plugin Documentation"
 
 
 
 
242
 
243
- #: classes/class.bSettings.php:30
 
 
 
 
 
 
 
 
244
  msgid "General Settings"
245
- msgstr "Configurações Gerais"
 
 
 
 
 
 
 
 
 
 
 
 
246
 
247
- #: classes/class.bSettings.php:32
 
 
 
 
 
 
 
 
 
 
 
 
248
  msgid "Enable Free Membership"
249
- msgstr "Habilite associação grátis"
250
 
251
- #: classes/class.bSettings.php:35
252
- msgid "Enable/disable registration for free membership level"
253
- msgstr "Ativar / desativar o registro para o nível de adesão gratuita"
 
 
 
 
 
254
 
255
- #: classes/class.bSettings.php:36
256
  msgid "Free Membership Level ID"
257
- msgstr "Associação Livre Nível ID"
258
 
259
- #: classes/class.bSettings.php:39
260
  msgid "Assign free membership level ID"
261
- msgstr "Atribuir livre adesão nível ID"
 
 
 
 
262
 
263
- #: classes/class.bSettings.php:40
 
 
 
 
 
 
 
 
 
 
264
  msgid "Hide Adminbar"
265
- msgstr "Esconder Admin Bar"
266
 
267
- #: classes/class.bSettings.php:43
268
  msgid ""
269
  "WordPress shows an admin toolbar to the logged in users of the site. Check "
270
  "this box if you want to hide that admin toolbar in the fronend of your site."
271
  msgstr ""
272
- "WordPress mostra uma barra de ferramentas de administração para o site para "
273
- "os usuários do site. Marque esta caixa se você quer esconder essa barra de "
274
- "ferramentas admin no front-end do seu site."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
 
276
- #: classes/class.bSettings.php:45
 
 
 
 
277
  msgid "Pages Settings"
278
- msgstr "Configurações de Páginas"
279
 
280
- #: classes/class.bSettings.php:47
281
  msgid "Login Page URL"
282
- msgstr "URL da página de Entrar"
283
 
284
- #: classes/class.bSettings.php:51
285
  msgid "Registration Page URL"
286
- msgstr "URL da página Registro"
287
 
288
- #: classes/class.bSettings.php:55
289
  msgid "Join Us Page URL"
290
- msgstr "URL da página Junte-se a Nós"
291
 
292
- #: classes/class.bSettings.php:59
293
  msgid "Edit Profile Page URL"
294
- msgstr "URL da página Editar Perfil"
295
 
296
- #: classes/class.bSettings.php:63
297
  msgid "Password Reset Page URL"
298
- msgstr "URL da Página Reset de Senha"
299
 
300
- #: classes/class.bSettings.php:68
301
  msgid "Test & Debug Settings"
302
- msgstr "Configurações de teste e depuração"
 
 
 
 
303
 
304
- #: classes/class.bSettings.php:74
305
  msgid "Enable Sandbox Testing"
306
- msgstr "Permitir testes Sandbox"
307
 
308
- #: classes/class.bSettings.php:77
309
  msgid "Enable this option if you want to do sandbox payment testing."
310
- msgstr "Ative essa opção se você quiser fazer o teste de pagamento sandbox."
 
311
 
312
- #: classes/class.bSettings.php:90
 
 
 
 
 
313
  msgid "Email Misc. Settings"
314
- msgstr "Configurações E-mail Misc. "
315
 
316
- #: classes/class.bSettings.php:92
317
  msgid "From Email Address"
318
- msgstr "De Endereço de Email"
319
 
320
- #: classes/class.bSettings.php:97
321
  msgid "Email Settings (Prompt to Complete Registration )"
322
- msgstr ""
323
 
324
- #: classes/class.bSettings.php:99 classes/class.bSettings.php:110
325
- #: classes/class.bSettings.php:129
326
  msgid "Email Subject"
327
- msgstr "Assunto do E-mail"
328
 
329
- #: classes/class.bSettings.php:103 classes/class.bSettings.php:114
330
- #: classes/class.bSettings.php:133
331
  msgid "Email Body"
332
- msgstr "Corpo do E-mail"
333
 
334
- #: classes/class.bSettings.php:108
335
  msgid "Email Settings (Registration Complete)"
336
- msgstr "Configurações de e-mail ( Registro Completo)"
 
 
 
 
 
 
 
 
 
 
 
 
337
 
338
- #: classes/class.bSettings.php:118
339
- msgid "Send Notification To Admin"
340
- msgstr "Enviar uma notificação ao Administrador"
341
 
342
- #: classes/class.bSettings.php:122
 
 
 
 
 
 
 
 
343
  msgid "Send Email to Member When Added via Admin Dashboard"
344
  msgstr ""
345
- "Enviar e-mail para membros quando adicionada via Painel de Administração"
 
346
 
347
- #: classes/class.bSettings.php:127
 
 
 
 
348
  msgid " Email Settings (Account Upgrade Notification)"
349
- msgstr "Configurações de e-mail ( Conta de Notificação de atualização )"
 
 
 
 
350
 
351
- #: classes/class.bSettings.php:326
 
 
 
 
 
 
 
 
 
 
352
  msgid "Not a Member?"
353
- msgstr "Não é um membro?"
354
 
355
- #: classes/class.bSettings.php:326 views/login.php:30
356
  msgid "Join Us"
357
- msgstr "Junte-se a nós"
358
 
359
- #: classes/class.bUtils.php:32 views/admin_member_form_common_part.php:66
360
  msgid "Active"
361
- msgstr "Ativa"
362
 
363
- #: classes/class.bUtils.php:33 views/admin_member_form_common_part.php:67
364
  msgid "Inactive"
365
- msgstr "Inativo"
366
 
367
- #: classes/class.bUtils.php:34 views/admin_member_form_common_part.php:68
368
  msgid "Pending"
369
- msgstr "Pendendo"
370
 
371
- #: classes/class.bUtils.php:35 views/admin_member_form_common_part.php:69
372
  msgid "Expired"
373
  msgstr "Expirado"
374
 
375
- #: classes/class.bUtils.php:225
376
  msgid "Never"
377
  msgstr "Nunca"
378
 
379
- #: classes/class.miscUtils.php:51
380
- msgid "Registration"
381
- msgstr "Inscrição"
382
 
383
- #: classes/class.miscUtils.php:74
384
- msgid "Member Login"
385
- msgstr "Login de usuário"
386
 
387
- #: classes/class.miscUtils.php:97
388
- msgid "Profile"
389
- msgstr "Perfil"
390
 
391
- #: classes/class.miscUtils.php:120
392
- msgid "Password Reset"
393
- msgstr ""
394
 
395
- #: classes/class.simple-wp-membership.php:178
396
- msgid "You are not logged in."
397
- msgstr "Você não está logado."
398
 
399
- #: classes/class.simple-wp-membership.php:209
400
- msgid "Simple WP Membership Protection"
401
- msgstr ""
 
 
402
 
403
- #: classes/class.simple-wp-membership.php:222
404
- msgid "Simple Membership Protection options"
405
- msgstr "Opções de proteção Simple Membership"
406
 
407
- #: classes/class.simple-wp-membership.php:238
408
- msgid "Do you want to protect this content?"
409
- msgstr "Você quer proteger este conteúdo?"
410
 
411
- #: classes/class.simple-wp-membership.php:243
412
- msgid "Select the membership level that can access this content:"
413
- msgstr "Selecione o nível de associação que pode acessar este conteúdo:"
 
414
 
415
- #: classes/class.simple-wp-membership.php:375
416
- msgid "Display SWPM Login."
417
- msgstr ""
418
 
419
- #: classes/class.simple-wp-membership.php:377
420
- msgid "SWPM Login"
421
- msgstr ""
422
 
423
- #: classes/class.simple-wp-membership.php:464
424
- msgid "WP Membership"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  msgstr ""
426
 
427
- #: classes/class.simple-wp-membership.php:471
428
- msgid "Settings"
429
- msgstr "Configurações"
 
430
 
431
- #: views/add.php:13 views/admin_member_form_common_part.php:45
432
- #: views/edit.php:12 views/login.php:11
433
- msgid "Password"
434
- msgstr "Senha"
435
 
436
- #: views/add.php:17 views/edit.php:16
437
- msgid "Repeat Password"
438
- msgstr "Repita a senha"
439
 
440
- #: views/add.php:29 views/admin_member_form_common_part.php:10
441
- msgid "Gender"
442
- msgstr "Sexo"
443
 
444
- #: views/add.php:36 views/admin_member_form_common_part.php:17
445
- #: views/edit.php:28
446
- msgid "Phone"
447
- msgstr "telefone"
448
 
449
- #: views/add.php:40 views/admin_member_form_common_part.php:21
450
- #: views/edit.php:32
451
- msgid "Street"
452
- msgstr "Rua"
453
 
454
- #: views/add.php:44 views/admin_member_form_common_part.php:25
455
- #: views/edit.php:36
456
- msgid "City"
457
- msgstr "Cidade"
458
 
459
- #: views/add.php:48 views/admin_member_form_common_part.php:29
460
- #: views/edit.php:40
461
- msgid "State"
462
- msgstr "Estado"
 
 
 
 
 
463
 
464
- #: views/add.php:52 views/admin_member_form_common_part.php:33
465
- #: views/edit.php:44
466
- msgid "Zipcode"
467
- msgstr "Cep"
468
 
469
- #: views/add.php:56 views/admin_member_form_common_part.php:37
470
- #: views/edit.php:48
471
- msgid "Country"
472
- msgstr "País"
473
 
474
- #: views/add.php:60 views/admin_member_form_common_part.php:41
475
- msgid "Company"
476
- msgstr "Empresa"
 
477
 
478
- #: views/add.php:71
 
 
 
 
479
  msgid "Register"
480
- msgstr "Cadastre-se"
481
 
482
  #: views/admin_add.php:6
483
  msgid "Add Member"
484
- msgstr "Adicionar membro"
485
 
486
  #: views/admin_add.php:7
487
- #, fuzzy
488
  msgid "Create a brand new user and add it to this site."
489
- msgstr "Crie um novo usuário e adicioná-lo a este site."
490
-
491
- #: views/admin_add.php:11
492
- msgid "User name"
493
- msgstr ""
494
 
495
  #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:11
496
  #: views/admin_add_level.php:15 views/admin_add_level.php:19
497
- #: views/admin_edit.php:9 views/admin_edit.php:13
498
- #: views/admin_edit_level.php:10 views/admin_edit_level.php:14
499
- #: views/admin_edit_level.php:18
500
  msgid "(required)"
501
  msgstr "(obrigatório)"
502
 
503
  #: views/admin_add.php:15 views/admin_edit.php:13
504
  msgid "E-mail"
505
- msgstr ""
506
 
507
  #: views/admin_add.php:19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
508
  msgid "Add New Member "
509
- msgstr "Adicionar Novo Membro "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
 
511
  #: views/admin_add_level.php:6
512
  msgid "Create new membership level."
513
- msgstr "Criar novo nível de associação."
514
 
515
  #: views/admin_add_level.php:11 views/admin_edit_level.php:10
516
  msgid "Membership Level Name"
517
- msgstr "Nome do Nível de Associação"
518
 
519
  #: views/admin_add_level.php:15 views/admin_edit_level.php:14
520
  msgid "Default WordPress Role"
521
- msgstr "WordPress Role Padrão"
522
 
523
  #: views/admin_add_level.php:19 views/admin_edit_level.php:18
524
- msgid "Subscription Duration"
525
- msgstr "Duração da Assinatura "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
526
 
527
- #: views/admin_add_level.php:26 views/admin_edit_level.php:27
528
- msgid "No Expiry"
529
- msgstr "Sem validade"
530
 
531
- #: views/admin_add_level.php:55
 
 
 
 
 
 
 
 
 
 
 
 
532
  msgid "Add New Membership Level "
533
- msgstr "Adicionar Novo Nível de Associação "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
534
 
535
  #: views/admin_edit.php:5
536
  msgid "Edit Member"
537
- msgstr "Editar Membro"
538
 
539
  #: views/admin_edit.php:6
540
  msgid "Edit existing member details."
541
- msgstr "Edite detalhes de membros existentes."
542
 
543
- #: views/admin_edit.php:9
544
- msgid "Username"
545
- msgstr "Usuário"
546
 
547
- #: views/admin_edit.php:18
 
 
 
 
 
 
 
 
 
 
 
 
548
  msgid "Edit User "
549
- msgstr "Editar Usuário "
550
 
551
  #: views/admin_edit_level.php:5
552
  msgid "Edit membership level"
553
- msgstr "Editar Nível de Associação"
554
 
555
  #: views/admin_edit_level.php:6
556
  msgid "Edit membership level."
557
- msgstr "Editar Nível de Associação"
 
 
 
 
 
 
 
 
 
558
 
559
- #: views/admin_edit_level.php:54
560
  msgid "Edit Membership Level "
561
- msgstr "Editar Nível de Associação "
562
 
563
  #: views/admin_members.php:2
564
  msgid "Simple WP Membership::Members"
565
- msgstr "Membership WP Simples :: Membros"
566
 
567
- #: views/admin_members.php:3 views/admin_members.php:19
568
- #: views/admin_membership_levels.php:21
569
  msgid "Add New"
570
- msgstr "Adicionar Novo"
571
 
572
- #: views/admin_members.php:9 views/admin_membership_levels.php:11
573
- msgid "search"
574
- msgstr "Pesquisa"
575
-
576
- #: views/admin_membership_levels.php:3
577
  msgid "Simple WP Membership::Membership Levels"
578
- msgstr "Membership WP Simples :: Níveis de Associação"
 
 
 
 
579
 
580
  #: views/admin_membership_level_menu.php:2
581
  msgid "Membership level"
582
- msgstr "Nível de associação"
583
 
584
  #: views/admin_membership_level_menu.php:3
585
  msgid "Manage Content Production"
586
- msgstr "Gerenciar Produção de Conteúdo"
 
 
 
 
587
 
588
  #: views/admin_membership_manage.php:17
589
  msgid "Example Content Protection Settings"
590
- msgstr "Exemplo de configurações de proteção de conteúdo"
591
-
592
- #: views/admin_member_form_common_part.php:45
593
- msgid "(twice, required)"
594
- msgstr "(duas vezes, é necessária)"
595
 
596
- #: views/admin_member_form_common_part.php:50
597
- msgid "Strength indicator"
598
- msgstr "Indicador de força"
599
 
600
- #: views/admin_member_form_common_part.php:51
601
- msgid ""
602
- "Hint: The password should be at least seven characters long. To make it "
603
- "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
604
- "$ % ^ &amp; )."
605
- msgstr ""
606
- "Dica: A senha deve ter pelo menos sete caracteres. Para torná-lo mais forte, "
607
- "use letras maiúsculas e minúsculas, números e símbolos como !?"
608
 
609
- #: views/admin_member_form_common_part.php:64 views/loggedin.php:7
610
- #: views/login_widget_logged.php:6
611
- msgid "Account Status"
612
- msgstr "Status da Conta"
613
 
614
- #: views/admin_member_form_common_part.php:74
615
- msgid "Member Since"
616
- msgstr "Cadastrado"
617
 
618
- #: views/admin_payment_settings.php:2 views/admin_settings.php:2
619
- #: views/admin_tools_settings.php:2
620
- msgid "Simple WP Membership::Settings"
621
- msgstr "Membership WP Simples :: Configurações"
622
 
623
- #: views/admin_payment_settings.php:33
624
- msgid "PayPal Integration Settings"
625
- msgstr "Configurações de Integração com PayPal"
626
 
627
- #: views/admin_payment_settings.php:36
628
- msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
629
- msgstr "Gerar o Código \"Advanced Variables\" para o botão PayPal"
630
 
631
- #: views/admin_payment_settings.php:39
632
- msgid "Enter the Membership Level ID"
633
- msgstr "Digite o Nível de Associação ID"
634
 
635
- #: views/admin_payment_settings.php:41
636
- msgid "Generate Code"
637
- msgstr "Gerar código"
638
 
639
  #: views/admin_tools_settings.php:9
640
  msgid "Generate a Registration Completion link"
641
- msgstr "Gerar link de Conclusão de Registro"
642
 
643
  #: views/admin_tools_settings.php:12
644
  msgid ""
@@ -646,13 +1124,13 @@ msgid ""
646
  "your customer if they have missed the email that was automatically sent out "
647
  "to them after the payment."
648
  msgstr ""
649
- "Você pode gerar um atalho manualmente conclusão de inscrição aqui e dar a "
650
- "seu cliente, se eles perderam o e-mail que foi enviado automaticamente para "
651
- "eles após o pagamento."
652
 
653
  #: views/admin_tools_settings.php:17
654
  msgid "Generate Registration Completion Link"
655
- msgstr "Gerar link de Conclusão de Registro"
656
 
657
  #: views/admin_tools_settings.php:20
658
  msgid "OR"
@@ -660,52 +1138,217 @@ msgstr "OU"
660
 
661
  #: views/admin_tools_settings.php:21
662
  msgid "For All Pending Registrations"
663
- msgstr "Para todos os registos pendentes"
664
 
665
  #: views/admin_tools_settings.php:24
666
  msgid "Registration Completion Links Will Appear Below:"
667
- msgstr "Links conclusão de inscrição aparecerá abaixo:"
668
 
669
  #: views/admin_tools_settings.php:31
670
  msgid "Send Registration Reminder Email too"
671
- msgstr "Enviar Inscrição Reminder Email demais"
672
 
673
  #: views/admin_tools_settings.php:34
674
  msgid "Submit"
675
  msgstr "Enviar"
676
 
677
- #: views/edit.php:58
678
  msgid "Update"
679
- msgstr "Atualização"
680
-
681
- #: views/forgot_password.php:5
682
- msgid "Email Address"
683
- msgstr "Endereço de e-mail"
684
 
685
  #: views/forgot_password.php:12
686
  msgid "Reset Password"
687
- msgstr "Redefinir senha"
688
 
689
- #: views/loggedin.php:3 views/login_widget_logged.php:3
690
  msgid "Logged in as"
691
  msgstr "Logado como"
692
 
693
- #: views/loggedin.php:11 views/login_widget_logged.php:9
694
  msgid "Membership"
695
- msgstr "Associado"
696
 
697
- #: views/loggedin.php:15 views/login_widget_logged.php:12
698
  msgid "Account Expiry"
699
- msgstr "Validade da Conta"
700
 
701
- #: views/loggedin.php:19 views/login_widget_logged.php:16
702
  msgid "Logout"
703
  msgstr "Sair"
704
 
705
- #: views/login.php:17
706
  msgid "Remember Me"
707
- msgstr "Lembre-se de mim"
708
 
709
- #: views/login.php:26
710
  msgid "Forgot Password"
711
- msgstr "Esqueci minha senha"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: simple membership plugin\n"
4
+ "POT-Creation-Date: 2015-12-28 16:16-0200\n"
5
+ "PO-Revision-Date: 2016-01-03 15:48-0200\n"
6
+ "Language-Team: www.cindie.com.br <nandotelles@yahoo.com>\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.6\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: pt_BR\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 "Você não iniciou uma sessão de usuário!"
21
+
22
+ #: classes/class.simple-wp-membership.php:298
23
+ msgid "Simple WP Membership Protection"
24
+ msgstr "Proteção do Simple WP Membership"
25
+
26
+ #: classes/class.simple-wp-membership.php:310
27
+ msgid "Simple Membership Protection options"
28
+ msgstr "Opções para a proteção do Simple WP Membershp"
29
+
30
+ #: classes/class.simple-wp-membership.php:326
31
+ msgid "Do you want to protect this content?"
32
+ msgstr "Você gostaria de proteger este conteúdo?"
33
+
34
+ #: classes/class.simple-wp-membership.php:331
35
+ msgid "Select the membership level that can access this content:"
36
+ msgstr "Selecione o nível de usuário permitido para o acesso deste conteúdo."
37
+
38
+ #: classes/class.simple-wp-membership.php:464
39
+ msgid "WP Membership"
40
+ msgstr "WP Membership"
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 "Usuários"
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 "Níveis de usuário"
52
+
53
+ #: classes/class.simple-wp-membership.php:467
54
+ msgid "Settings"
55
+ msgstr "Configurações"
56
+
57
+ #: classes/class.simple-wp-membership.php:468
58
+ msgid "Payments"
59
+ msgstr "Pagamentos"
60
 
61
+ #: classes/class.simple-wp-membership.php:469
62
+ msgid "Add-ons"
63
+ msgstr "Add-ons"
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 ""
70
+ "Você precisa iniciar uma sessão de usuário para visualizar esta página. "
71
+
72
+ #: classes/class.swpm-access-control.php:34
73
+ #: classes/class.swpm-access-control.php:60
74
+ msgid ""
75
+ "Your account has expired. Please renew your account to gain access to this "
76
+ "content."
77
+ msgstr ""
78
+ "Sua conta de usuário expirou! Por favor, renove sua conta para obter acesso "
79
+ "a esta página."
80
+
81
+ #: classes/class.swpm-access-control.php:41
82
+ msgid "This content can only be viewed by members who joined on or before "
83
+ msgstr "Esta página só pode ser visualizada por usuários cadastrados até "
84
 
85
+ #: classes/class.swpm-access-control.php:46
86
+ #: classes/class.swpm-access-control.php:66
87
+ msgid "This content is not permitted for your membership level."
88
+ msgstr "Este conteúdo não pode ser visualizado pelo seu nível de usuário."
89
+
90
+ #: classes/class.swpm-access-control.php:84
91
+ msgid " The rest of the content is not permitted for your membership level."
92
+ msgstr ""
93
+ "O restante do conteúdo não pode ser visualizado pelo seu nível de usuário."
94
 
95
+ #: classes/class.swpm-access-control.php:88
96
+ #: classes/class.swpm-access-control.php:106
97
+ msgid "You need to login to view the rest of the content. "
98
+ msgstr ""
99
+ "Você precisa iniciar uma sessão para visualizar o restante do conteúdo."
100
+
101
+ #: classes/class.swpm-admin-registration.php:54
102
+ msgid "Member record added successfully."
103
+ msgstr "Cadastro de usuário realizado com sucesso."
104
+
105
+ #: classes/class.swpm-admin-registration.php:59
106
+ #: classes/class.swpm-admin-registration.php:81
107
+ #: classes/class.swpm-admin-registration.php:105
108
+ #: classes/class.swpm-membership-level.php:43
109
+ #: classes/class.swpm-membership-level.php:62
110
  msgid "Please correct the following:"
111
+ msgstr "Por favor, corrija os erros abaixo:"
112
+
113
+ #: classes/class.swpm-admin-registration.php:96
114
+ msgid "Your current password"
115
+ msgstr "Sua senha atual"
116
 
117
+ #: classes/class.swpm-ajax.php:14
118
+ msgid "Invalid Email Address"
119
+ msgstr "Endereço de email inválido"
120
+
121
+ #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
122
  msgid "Aready taken"
123
+ msgstr "Não está disponível para uso"
124
+
125
+ #: classes/class.swpm-ajax.php:30
126
+ msgid "Name contains invalid character"
127
+ msgstr "O nome contem caracteres iválidos"
128
 
129
+ #: classes/class.swpm-ajax.php:37
130
  msgid "Available"
131
  msgstr "Disponível"
132
 
133
+ #: classes/class.swpm-auth.php:50
134
  msgid "User Not Found."
135
+ msgstr "Usuário não encontrado"
136
 
137
+ #: classes/class.swpm-auth.php:57
138
  msgid "Password Empty or Invalid."
139
+ msgstr "Senha inválida ou em branco"
140
 
141
+ #: classes/class.swpm-auth.php:82
142
  msgid "Account is inactive."
143
+ msgstr "Conta fora de uso."
144
+
145
+ #: classes/class.swpm-auth.php:85
146
+ msgid "Account is pending."
147
+ msgstr "Conta pendente,"
148
 
149
+ #: classes/class.swpm-auth.php:88 classes/class.swpm-auth.php:106
150
+ msgid "Account has expired."
151
+ msgstr "A conta expirou."
152
+
153
+ #: classes/class.swpm-auth.php:114
154
  msgid "You are logged in as:"
155
  msgstr "Você está logado como:"
156
 
157
+ #: classes/class.swpm-auth.php:160
158
  msgid "Logged Out Successfully."
159
+ msgstr "Sessão finalizada com sucesso."
160
 
161
+ #: classes/class.swpm-auth.php:210
162
  msgid "Session Expired."
163
  msgstr "Sessão expirada."
164
 
165
+ #: classes/class.swpm-auth.php:219
166
+ msgid "Invalid Username"
167
+ msgstr "Nome de usuário inválido."
168
+
169
+ #: classes/class.swpm-auth.php:227
170
+ msgid "Please login again."
171
+ msgstr "Por favor, inicie sua sessão novamente."
172
+
173
+ #: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:23
174
+ #: classes/class.swpm-membership-levels.php:10
175
+ #: classes/class.swpm-membership-levels.php:20
176
+ #: classes/admin-includes/class.swpm-payments-list-table.php:80
177
+ #: views/add.php:30 views/admin_member_form_common_part.php:2 views/edit.php:53
178
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:36
179
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:217
180
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:37
181
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:310
182
+ msgid "Membership Level"
183
+ msgstr "Nível de usuário"
184
+
185
+ #: classes/class.swpm-category-list.php:33 classes/class.swpm-members.php:18
186
+ #: classes/class.swpm-membership-levels.php:19
187
+ msgid "ID"
188
+ msgstr "ID"
189
+
190
+ #: classes/class.swpm-category-list.php:34
191
+ msgid "Name"
192
+ msgstr "Nome"
193
+
194
+ #: classes/class.swpm-category-list.php:35
195
+ msgid "Description"
196
+ msgstr "Descrição"
197
 
198
+ #: classes/class.swpm-category-list.php:36
199
+ msgid "Count"
200
+ msgstr "Contagem"
201
 
202
+ #: classes/class.swpm-category-list.php:80
203
+ msgid "Category protection updated!"
204
+ msgstr "Proteção de categoria atualizada!"
205
+
206
+ #: classes/class.swpm-form.php:26
207
  msgid ""
208
+ "Wordpress account exists with given username. But given email doesn't match."
209
  msgstr ""
210
+ "Existe uma conta na CINDIE com o nome fornecido, mas este email não está "
211
+ "associado a ela."
212
 
213
+ #: classes/class.swpm-form.php:31
214
  msgid ""
215
+ "Wordpress account exists with given email. But given username doesn't match."
216
  msgstr ""
217
+ "Existe uma conta na CINDIE com o email fornecido, mas este nome não está "
218
+ "associado a ela."
219
+
220
+ #: classes/class.swpm-form.php:40
221
+ msgid "Username is required"
222
+ msgstr "Nome de usuário inválido"
223
 
224
+ #: classes/class.swpm-form.php:44
225
+ msgid "Username contains invalid character"
226
+ msgstr "O nome contem caracteres iválidos"
227
 
228
+ #: classes/class.swpm-form.php:52
229
+ msgid "Username already exists."
230
+ msgstr "O nome de usuário já existe."
231
 
232
+ #: classes/class.swpm-form.php:75
233
  msgid "Password is required"
234
+ msgstr "Senha inválida ou em branco"
235
 
236
+ #: classes/class.swpm-form.php:82
237
  msgid "Password mismatch"
238
+ msgstr "Senha inválida ou em branco"
239
 
240
+ #: classes/class.swpm-form.php:93
241
  msgid "Email is required"
242
+ msgstr "Endereço de email inválido"
243
 
244
+ #: classes/class.swpm-form.php:97
245
  msgid "Email is invalid"
246
+ msgstr "Endereço de email inválido"
247
 
248
+ #: classes/class.swpm-form.php:113
249
  msgid "Email is already used."
250
+ msgstr "Este emailfoi cadastrado."
251
 
252
+ #: classes/class.swpm-form.php:170
253
  msgid "Member since field is invalid"
254
+ msgstr "O campo \"usuário desde\" é inválido"
255
 
256
+ #: classes/class.swpm-form.php:181
257
+ msgid "Access starts field is invalid"
258
+ msgstr "O campo \"início de acesso\" é inválido."
259
 
260
+ #: classes/class.swpm-form.php:191
261
  msgid "Gender field is invalid"
262
+ msgstr "O campo \"gênero\" é inválido"
263
 
264
+ #: classes/class.swpm-form.php:202
265
  msgid "Account state field is invalid"
266
+ msgstr "O campo \"estado da conta\" é inválido"
267
+
268
+ #: classes/class.swpm-form.php:209
269
+ msgid "Invalid membership level"
270
+ msgstr "Nível de usuário inválido"
271
+
272
+ #: classes/class.swpm-front-registration.php:71
273
+ msgid "Security check: captcha validation failed."
274
+ msgstr "Verificação de segurança: a validação do captcha falhou."
275
+
276
+ #: classes/class.swpm-front-registration.php:80
277
+ msgid "Registration Successful. "
278
+ msgstr "Cadastro realizado com sucesso!"
279
 
280
+ #: classes/class.swpm-front-registration.php:80
281
+ #: classes/class.swpm-settings.php:377
282
  msgid "Please"
283
+ msgstr "Por favor,"
284
 
285
+ #: classes/class.swpm-front-registration.php:80
286
+ #: classes/class.swpm-settings.php:377 views/login.php:21
287
  msgid "Login"
288
+ msgstr "Faça login"
289
 
290
+ #: classes/class.swpm-front-registration.php:92
291
+ #: classes/class.swpm-front-registration.php:179
292
  msgid "Please correct the following"
293
+ msgstr "Por favor, corrija os erros abaixo"
294
 
295
+ #: classes/class.swpm-front-registration.php:123
296
  msgid "Membership Level Couldn't be found."
297
+ msgstr "Nível de usuário inválido"
298
+
299
+ #: classes/class.swpm-front-registration.php:162
300
+ msgid "Profile updated successfully."
301
+ msgstr "Cadastro atualizado com sucesso"
302
+
303
+ #: classes/class.swpm-front-registration.php:170
304
+ msgid ""
305
+ "Profile updated successfully. You will need to re-login since you changed "
306
+ "your password."
307
+ msgstr ""
308
+ "Cadastro realizado com sucesso. Você precisa reiniciar sua sessão uma vez "
309
+ "que sua senha foi alterada."
310
 
311
+ #: classes/class.swpm-front-registration.php:189
312
+ msgid "Email address not valid."
313
+ msgstr "Endereço de email inválido"
314
 
315
+ #: classes/class.swpm-front-registration.php:200
316
+ msgid "No user found with that email address."
317
+ msgstr "Endereço de email inválido"
318
+
319
+ #: classes/class.swpm-front-registration.php:201
320
+ #: classes/class.swpm-front-registration.php:225
321
+ msgid "Email Address: "
322
+ msgstr "Endereço de email:"
323
+
324
+ #: classes/class.swpm-front-registration.php:224
325
  msgid "New password has been sent to your email address."
326
+ msgstr "Uma nova senha foi enviada para seu email"
327
 
328
+ #: classes/class.swpm-init-time-tasks.php:108
329
+ msgid "Sorry, Nonce verification failed."
330
+ msgstr "Pedimos desculpa! A verificação falhou!"
331
 
332
+ #: classes/class.swpm-init-time-tasks.php:115
333
+ msgid "Sorry, Password didn't match."
334
+ msgstr "Pedimos desculpa! A senha não é válida."
335
 
336
+ #: classes/class.swpm-level-form.php:47
337
+ msgid "Date format is not valid."
338
+ msgstr " O formato de data não é válido."
339
 
340
+ #: classes/class.swpm-level-form.php:55
341
+ msgid "Access duration must be > 0."
342
+ msgstr "A duração do acesso deve ser maior do que zero."
343
 
344
+ #: classes/class.swpm-member-utils.php:22
345
+ #: classes/class.swpm-member-utils.php:30
346
+ #: classes/class.swpm-member-utils.php:38
347
+ #: classes/class.swpm-member-utils.php:48
348
+ msgid "User is not logged in."
349
+ msgstr "Você não iniciou uma sessão de usuário!"
350
 
351
+ #: classes/class.swpm-members.php:9
352
+ msgid "Member"
353
+ msgstr "Usuário"
354
+
355
+ #: classes/class.swpm-members.php:19 views/add.php:6 views/admin_add.php:11
356
+ #: views/admin_edit.php:9 views/edit.php:5 views/login.php:5
357
+ msgid "Username"
358
+ msgstr "Nome de usuário"
359
+
360
+ #: classes/class.swpm-members.php:20
361
+ #: classes/admin-includes/class.swpm-payments-list-table.php:74
362
+ #: views/add.php:22 views/admin_member_form_common_part.php:15
363
+ #: views/edit.php:21
364
  msgid "First Name"
365
+ msgstr "Primeiro nome"
366
 
367
+ #: classes/class.swpm-members.php:21
368
+ #: classes/admin-includes/class.swpm-payments-list-table.php:75
369
+ #: views/add.php:26 views/admin_member_form_common_part.php:19
370
+ #: views/edit.php:25
371
  msgid "Last Name"
372
  msgstr "Sobrenome"
373
 
374
+ #: classes/class.swpm-members.php:22 views/add.php:10 views/edit.php:9
375
  msgid "Email"
376
+ msgstr "Email"
377
 
378
+ #: classes/class.swpm-members.php:24 views/admin_member_form_common_part.php:11
379
+ msgid "Access Starts"
380
+ msgstr "Início do acesso"
 
 
 
 
 
 
381
 
382
+ #: classes/class.swpm-members.php:25
383
  msgid "Account State"
384
+ msgstr "Estado da conta"
385
 
386
+ #: classes/class.swpm-members.php:41
387
+ #: classes/class.swpm-membership-levels.php:35
388
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:80
389
+ #: classes/admin-includes/class.swpm-payments-list-table.php:95
390
  msgid "Delete"
391
+ msgstr "Deletar"
392
+
393
+ #: classes/class.swpm-members.php:42
394
+ msgid "Set Status to Active"
395
+ msgstr "Definir status como ativo"
396
+
397
+ #: classes/class.swpm-members.php:44
398
+ msgid "Set Status to Inactive"
399
+ msgstr "Definir status como desativado"
400
 
401
+ #: classes/class.swpm-members.php:45
402
+ msgid "Set Status to Pending"
403
+ msgstr "Definir status como pendente"
404
+
405
+ #: classes/class.swpm-members.php:46
406
+ msgid "Set Status to Expired"
407
+ msgstr "Definir status como expirado"
408
+
409
+ #: classes/class.swpm-members.php:121
410
  msgid "No Member found."
411
+ msgstr "Nenhum usuário econtrado"
412
 
413
+ #: classes/class.swpm-membership-level.php:38
414
  msgid "Membership Level Creation Successful."
415
+ msgstr "Criação de nível de usuário bem sucedida"
416
 
417
+ #: classes/class.swpm-membership-level.php:57
418
  msgid "Updated Successfully."
419
+ msgstr "Atualização realizada"
 
 
 
 
 
420
 
421
+ #: classes/class.swpm-membership-levels.php:21
422
  msgid "Role"
423
+ msgstr "Função"
424
 
425
+ #: classes/class.swpm-membership-levels.php:22
426
+ msgid "Access Valid For/Until"
427
+ msgstr "O acesso é válido até/durante"
428
 
429
+ #: classes/class.swpm-misc-utils.php:50
430
+ msgid "Registration"
431
+ msgstr "Cadastro"
432
+
433
+ #: classes/class.swpm-misc-utils.php:73
434
+ msgid "Member Login"
435
+ msgstr "Login de usuário"
436
 
437
+ #: classes/class.swpm-misc-utils.php:96
438
+ msgid "Profile"
439
+ msgstr "Perfil"
440
+
441
+ #: classes/class.swpm-misc-utils.php:119
442
+ msgid "Password Reset"
443
+ msgstr "Redefinição de senha"
444
+
445
+ #: classes/class.swpm-settings.php:21 classes/class.swpm-settings.php:39
446
  msgid "General Settings"
447
+ msgstr "Configurações gerais"
448
+
449
+ #: classes/class.swpm-settings.php:21
450
+ msgid "Payment Settings"
451
+ msgstr "Configurações de pagamento"
452
+
453
+ #: classes/class.swpm-settings.php:22
454
+ msgid "Email Settings"
455
+ msgstr "Configurações de email"
456
+
457
+ #: classes/class.swpm-settings.php:22
458
+ msgid "Tools"
459
+ msgstr "Ferramentas"
460
 
461
+ #: classes/class.swpm-settings.php:22 classes/class.swpm-settings.php:150
462
+ msgid "Advanced Settings"
463
+ msgstr "Configurações avançadas"
464
+
465
+ #: classes/class.swpm-settings.php:22
466
+ msgid "Addons Settings"
467
+ msgstr "Configurações de add-ons"
468
+
469
+ #: classes/class.swpm-settings.php:38
470
+ msgid "Plugin Documentation"
471
+ msgstr "Documentação de plugin"
472
+
473
+ #: classes/class.swpm-settings.php:40
474
  msgid "Enable Free Membership"
475
+ msgstr "Habilitar participação gratuita"
476
 
477
+ #: classes/class.swpm-settings.php:41
478
+ msgid ""
479
+ "Enable/disable registration for free membership level. When you enable this "
480
+ "option, make sure to specify a free membership level ID in the field below."
481
+ msgstr ""
482
+ "Habilitar/desabilitar cadastro para o nível de usuário gratuito. Quando você "
483
+ "habilitar esta opção, certifique-se de especificar uma ID de nível de "
484
+ "usuário no campo abaixo"
485
 
486
+ #: classes/class.swpm-settings.php:42
487
  msgid "Free Membership Level ID"
488
+ msgstr "Nível de usuário gratuito"
489
 
490
+ #: classes/class.swpm-settings.php:43
491
  msgid "Assign free membership level ID"
492
+ msgstr "Atribua uma ID para o nível de usuário gratuito"
493
+
494
+ #: classes/class.swpm-settings.php:44
495
+ msgid "Enable More Tag Protection"
496
+ msgstr "Habilitar a proteção More Tag"
497
 
498
+ #: classes/class.swpm-settings.php:45
499
+ msgid ""
500
+ "Enables or disables \"more\" tag protection in the posts and pages. Anything "
501
+ "after the More tag is protected. Anything before the more tag is teaser "
502
+ "content."
503
+ msgstr ""
504
+ "Habilite ou desabilite a proteção more tag nos posts e páginas. Tudo que "
505
+ "estiver após a tag More estará protegido. Qualquer coisa que estiver antes "
506
+ "da tag More é conteúdo do tipo teaser."
507
+
508
+ #: classes/class.swpm-settings.php:46
509
  msgid "Hide Adminbar"
510
+ msgstr "Ocultar a barra de administração"
511
 
512
+ #: classes/class.swpm-settings.php:47
513
  msgid ""
514
  "WordPress shows an admin toolbar to the logged in users of the site. Check "
515
  "this box if you want to hide that admin toolbar in the fronend of your site."
516
  msgstr ""
517
+ "O Wordpress mostra uma barra de administração para o usuário logado no site. "
518
+ "Marque esta caixa se você quiser ocultar a barra de ferramentas de "
519
+ "administração."
520
+
521
+ #: classes/class.swpm-settings.php:49
522
+ msgid "Default Account Status"
523
+ msgstr "Estado padrão da conta"
524
+
525
+ #: classes/class.swpm-settings.php:52
526
+ msgid ""
527
+ "Select the default account status for newly registered users. If you want to "
528
+ "manually approve the members then you can set the status to \"Pending\"."
529
+ msgstr ""
530
+ "Selecione o status padrão de conta para usuário recém cadastrados. Se você "
531
+ "quiser aprovar os usuários manualmente, então você poderá definir o status "
532
+ "como \"Pendente\"."
533
+
534
+ #: classes/class.swpm-settings.php:53
535
+ msgid "Allow Account Deletion"
536
+ msgstr "Permitir a desativação da conta"
537
+
538
+ #: classes/class.swpm-settings.php:55
539
+ msgid "Allow users to delete their accounts."
540
+ msgstr "Permitir que os usuários deletem suas contas."
541
+
542
+ #: classes/class.swpm-settings.php:56
543
+ msgid "Auto Delete Pending Account"
544
+ msgstr "Auto Deletar Conta Pendente"
545
 
546
+ #: classes/class.swpm-settings.php:59
547
+ msgid "Select how long you want to keep \"pending\" account."
548
+ msgstr "Selecione o tempo de duração das contas \"pendentes\"."
549
+
550
+ #: classes/class.swpm-settings.php:67
551
  msgid "Pages Settings"
552
+ msgstr "Configurações da página"
553
 
554
+ #: classes/class.swpm-settings.php:68
555
  msgid "Login Page URL"
556
+ msgstr "URL da página de login"
557
 
558
+ #: classes/class.swpm-settings.php:70
559
  msgid "Registration Page URL"
560
+ msgstr "URL da página de cadastro"
561
 
562
+ #: classes/class.swpm-settings.php:72
563
  msgid "Join Us Page URL"
564
+ msgstr "URL da página Cadastre-se/Junte-se a nós"
565
 
566
+ #: classes/class.swpm-settings.php:74
567
  msgid "Edit Profile Page URL"
568
+ msgstr "Edite a URL da página de perfil"
569
 
570
+ #: classes/class.swpm-settings.php:76
571
  msgid "Password Reset Page URL"
572
+ msgstr "Edite a URL da página de redefinição de senha"
573
 
574
+ #: classes/class.swpm-settings.php:79
575
  msgid "Test & Debug Settings"
576
+ msgstr "Configurações de teste e debug"
577
+
578
+ #: classes/class.swpm-settings.php:81
579
+ msgid "Check this option to enable debug logging."
580
+ msgstr "Marque esta opção para habilitar o registro de verificação de erros."
581
 
582
+ #: classes/class.swpm-settings.php:86
583
  msgid "Enable Sandbox Testing"
584
+ msgstr "Habilite o teste sandbox"
585
 
586
+ #: classes/class.swpm-settings.php:87
587
  msgid "Enable this option if you want to do sandbox payment testing."
588
+ msgstr ""
589
+ "Habilite esta opção se você quiser realizar um teste de pagamento em sandbox."
590
 
591
+ #: classes/class.swpm-settings.php:97 classes/class.swpm-settings.php:145
592
+ #: classes/class.swpm-settings.php:243
593
+ msgid "Settings updated!"
594
+ msgstr "Configurações atualizadas!"
595
+
596
+ #: classes/class.swpm-settings.php:102
597
  msgid "Email Misc. Settings"
598
+ msgstr "Outras configurações de email"
599
 
600
+ #: classes/class.swpm-settings.php:103
601
  msgid "From Email Address"
602
+ msgstr "Email remetente"
603
 
604
+ #: classes/class.swpm-settings.php:106
605
  msgid "Email Settings (Prompt to Complete Registration )"
606
+ msgstr "Configurações de email (Avisar para concluir cadastro)"
607
 
608
+ #: classes/class.swpm-settings.php:107 classes/class.swpm-settings.php:113
609
+ #: classes/class.swpm-settings.php:125 classes/class.swpm-settings.php:132
610
  msgid "Email Subject"
611
+ msgstr "Assunto do email"
612
 
613
+ #: classes/class.swpm-settings.php:109 classes/class.swpm-settings.php:115
614
+ #: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:134
615
  msgid "Email Body"
616
+ msgstr "Corpo do email"
617
 
618
+ #: classes/class.swpm-settings.php:112
619
  msgid "Email Settings (Registration Complete)"
620
+ msgstr "Configurações do email (Cadastro concluído)"
621
+
622
+ #: classes/class.swpm-settings.php:117
623
+ msgid "Send Notification to Admin"
624
+ msgstr "Enviar notificações para o administrador"
625
+
626
+ #: classes/class.swpm-settings.php:118
627
+ msgid ""
628
+ "Enable this option if you want the admin to receive a notification when a "
629
+ "member registers."
630
+ msgstr ""
631
+ "Habilite esta opção se você quiser que o administrador receba uma "
632
+ "notificação quando um usuário se cadastrar."
633
 
634
+ #: classes/class.swpm-settings.php:119
635
+ msgid "Admin Email Address"
636
+ msgstr "Endereço de email do administrador"
637
 
638
+ #: classes/class.swpm-settings.php:120
639
+ msgid ""
640
+ "Enter the email address where you want the admin notification email to be "
641
+ "sent to."
642
+ msgstr ""
643
+ "Informe o endereço de email recipiente para as notificações a serem "
644
+ "entregues ao administrador."
645
+
646
+ #: classes/class.swpm-settings.php:121
647
  msgid "Send Email to Member When Added via Admin Dashboard"
648
  msgstr ""
649
+ "Envir email ao usuário quando seu cadastro for realizado pelo painel de "
650
+ "administração"
651
 
652
+ #: classes/class.swpm-settings.php:124
653
+ msgid "Email Settings (Password Reset)"
654
+ msgstr "Configurações de email (redefinição de senha)"
655
+
656
+ #: classes/class.swpm-settings.php:131
657
  msgid " Email Settings (Account Upgrade Notification)"
658
+ msgstr "Configurações de email (notificação de upgrade de conta)"
659
+
660
+ #: classes/class.swpm-settings.php:152
661
+ msgid "Enable Expired Account Login"
662
+ msgstr "Habilitar login de conta expirada"
663
 
664
+ #: classes/class.swpm-settings.php:153
665
+ msgid ""
666
+ "When enabled, expired members will be able to log into the system but won't "
667
+ "be able to view any protected content. This allows them to easily renew "
668
+ "their account by making another payment."
669
+ msgstr ""
670
+ "Quando habilitado, as contas expiradas poderão iniciar sessões no sistema "
671
+ "mas não poderão visualizar nenhum conteúdo protegido. Isto permite que eles "
672
+ "renovem suas contas facilmente mediante a realização de novo pagamento."
673
+
674
+ #: classes/class.swpm-settings.php:377
675
  msgid "Not a Member?"
676
+ msgstr "Você ainda não possui uma conta de usuário?"
677
 
678
+ #: classes/class.swpm-settings.php:377 views/login.php:27
679
  msgid "Join Us"
680
+ msgstr "Cadastre-se!"
681
 
682
+ #: classes/class.swpm-utils.php:67
683
  msgid "Active"
684
+ msgstr "Ativo"
685
 
686
+ #: classes/class.swpm-utils.php:68
687
  msgid "Inactive"
688
+ msgstr "Fora de uso"
689
 
690
+ #: classes/class.swpm-utils.php:69
691
  msgid "Pending"
692
+ msgstr "Pendente"
693
 
694
+ #: classes/class.swpm-utils.php:70
695
  msgid "Expired"
696
  msgstr "Expirado"
697
 
698
+ #: classes/class.swpm-utils.php:297
699
  msgid "Never"
700
  msgstr "Nunca"
701
 
702
+ #: classes/class.swpm-utils.php:371
703
+ msgid "Delete Account"
704
+ msgstr "Excluir conta"
705
 
706
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:63
707
+ msgid "Payment Button ID"
708
+ msgstr "ID de botão de pagamento"
709
 
710
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:64
711
+ msgid "Payment Button Title"
712
+ msgstr "Título de botão de pagamento"
713
 
714
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:65
715
+ msgid "Membership Level ID"
716
+ msgstr "ID de nível de usuário"
717
 
718
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:66
719
+ msgid "Button Shortcode"
720
+ msgstr "Shortcode do botão"
721
 
722
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:106
723
+ #: views/admin_members_list.php:15
724
+ #: views/payments/admin_all_payment_transactions.php:33
725
+ msgid "The selected entry was deleted!"
726
+ msgstr "O registro selecionado foi excluído."
727
 
728
+ #: classes/admin-includes/class.swpm-payments-list-table.php:53
729
+ msgid "View Profile"
730
+ msgstr "Visualizar perfil"
731
 
732
+ #: classes/admin-includes/class.swpm-payments-list-table.php:72
733
+ msgid "Row ID"
734
+ msgstr "ID da linha"
735
 
736
+ #: classes/admin-includes/class.swpm-payments-list-table.php:73
737
+ #: views/forgot_password.php:5
738
+ msgid "Email Address"
739
+ msgstr "Endereço de email"
740
 
741
+ #: classes/admin-includes/class.swpm-payments-list-table.php:76
742
+ msgid "Member Profile"
743
+ msgstr "Perfil de usuário"
744
 
745
+ #: classes/admin-includes/class.swpm-payments-list-table.php:77
746
+ msgid "Date"
747
+ msgstr "Data"
748
 
749
+ #: classes/admin-includes/class.swpm-payments-list-table.php:78
750
+ msgid "Transaction ID"
751
+ msgstr "ID da transação"
752
+
753
+ #: classes/admin-includes/class.swpm-payments-list-table.php:79
754
+ msgid "Amount"
755
+ msgstr "Quantidade"
756
+
757
+ #: classes/common/class.swpm-list-table.php:137
758
+ msgid "List View"
759
+ msgstr "Modo lista"
760
+
761
+ #: classes/common/class.swpm-list-table.php:138
762
+ msgid "Excerpt View"
763
+ msgstr "Modo resumo"
764
+
765
+ #: classes/common/class.swpm-list-table.php:305
766
+ msgid "No items found."
767
+ msgstr "Nenhum dado encontrado"
768
+
769
+ #: classes/common/class.swpm-list-table.php:431
770
+ msgid "Select bulk action"
771
+ msgstr "Selecionar ação em massa"
772
+
773
+ #: classes/common/class.swpm-list-table.php:433
774
+ msgid "Bulk Actions"
775
+ msgstr "Ações em massa"
776
+
777
+ #: classes/common/class.swpm-list-table.php:443
778
+ msgid "Apply"
779
+ msgstr "Aplicar"
780
+
781
+ #: classes/common/class.swpm-list-table.php:543
782
+ msgid "Filter by date"
783
+ msgstr "Filtrar por data"
784
+
785
+ #: classes/common/class.swpm-list-table.php:545
786
+ msgid "All dates"
787
+ msgstr "Todas as datas"
788
+
789
+ #: classes/common/class.swpm-list-table.php:555
790
+ #, php-format
791
+ msgid "%1$s %2$d"
792
  msgstr ""
793
 
794
+ #: classes/common/class.swpm-list-table.php:599
795
+ #, php-format
796
+ msgid "%s pending"
797
+ msgstr "%s pendentes"
798
 
799
+ #: classes/common/class.swpm-list-table.php:704
800
+ msgid "Select Page"
801
+ msgstr "Selecionar página"
 
802
 
803
+ #: classes/common/class.swpm-list-table.php:848
804
+ msgid "Select All"
805
+ msgstr "Selecionar tudo"
806
 
807
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:47
808
+ msgid "Your membership profile will be updated to reflect the payment."
809
+ msgstr "Seu perfil de usuário será atualizado de acordo com o pagamento."
810
 
811
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:48
812
+ msgid "Your profile username: "
813
+ msgstr "Nome de usuário de seu perfil"
 
814
 
815
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
816
+ msgid "Click on the following link to complete the registration."
817
+ msgstr "Clique no link a seguir para finalizar o cadastro."
 
818
 
819
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
820
+ msgid "Click here to complete your paid registration"
821
+ msgstr "Clique aqui para finalizar seu cadastro com pagamento"
 
822
 
823
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:66
824
+ msgid ""
825
+ "If you have just made a membership payment then your payment is yet to be "
826
+ "processed. Please check back in a few minutes. An email will be sent to you "
827
+ "with the details shortly."
828
+ msgstr ""
829
+ "Se você acabou de realizar um pagamento de assinatura, o processamento ainda "
830
+ "será efetuado. Por favor, verifique novamente em alguns minutos. Em breve, "
831
+ "você receberá um email com os detalhes."
832
 
833
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:80
834
+ msgid "Expiry: "
835
+ msgstr "Expiração"
 
836
 
837
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:82
838
+ msgid "You are not logged-in as a member"
839
+ msgstr "Você não está logado como um usuário."
 
840
 
841
+ #: views/add.php:14 views/admin_add.php:19 views/admin_edit.php:17
842
+ #: views/edit.php:13 views/login.php:11
843
+ msgid "Password"
844
+ msgstr "Senha"
845
 
846
+ #: views/add.php:18 views/edit.php:17
847
+ msgid "Repeat Password"
848
+ msgstr "Repita a senha"
849
+
850
+ #: views/add.php:41
851
  msgid "Register"
852
+ msgstr "Cadastrar"
853
 
854
  #: views/admin_add.php:6
855
  msgid "Add Member"
856
+ msgstr "Adicionar usuário"
857
 
858
  #: views/admin_add.php:7
 
859
  msgid "Create a brand new user and add it to this site."
860
+ msgstr "Criar uma usuário novo e adicioná-lo a este site."
 
 
 
 
861
 
862
  #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:11
863
  #: views/admin_add_level.php:15 views/admin_add_level.php:19
864
+ #: views/admin_edit.php:9 views/admin_edit.php:13 views/admin_edit_level.php:10
865
+ #: views/admin_edit_level.php:14 views/admin_edit_level.php:18
 
866
  msgid "(required)"
867
  msgstr "(obrigatório)"
868
 
869
  #: views/admin_add.php:15 views/admin_edit.php:13
870
  msgid "E-mail"
871
+ msgstr "Email"
872
 
873
  #: views/admin_add.php:19
874
+ msgid "(twice, required)"
875
+ msgstr "(duas vezes, obrigatório)"
876
+
877
+ #: views/admin_add.php:24 views/admin_edit.php:21
878
+ msgid "Strength indicator"
879
+ msgstr "Indicador de qualidade"
880
+
881
+ #: views/admin_add.php:25 views/admin_edit.php:22
882
+ msgid ""
883
+ "Hint: The password should be at least seven characters long. To make it "
884
+ "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
885
+ "$ % ^ &amp; )."
886
+ msgstr ""
887
+ "Dica: A senha deverá ter ao menos sete caracteres. Para torna-la mais forte, "
888
+ "utilize letras em maiúsculas e minúsculas, números e símbolos como ! \" $ ^ "
889
+ "&amp )."
890
+
891
+ #: views/admin_add.php:29 views/admin_edit.php:26 views/loggedin.php:7
892
+ msgid "Account Status"
893
+ msgstr "Status da conta"
894
+
895
+ #: views/admin_add.php:39
896
  msgid "Add New Member "
897
+ msgstr "Adicionar novo membro"
898
+
899
+ #: views/admin_addon_settings.php:3 views/admin_settings.php:3
900
+ #: views/admin_tools_settings.php:3 views/payments/admin_payment_settings.php:3
901
+ msgid "Simple WP Membership::Settings"
902
+ msgstr "Configurações do Simple WP Membership"
903
+
904
+ #: views/admin_addon_settings.php:8
905
+ msgid ""
906
+ "Some of the simple membership plugin's addon settings and options will be "
907
+ "displayed here (if you have them)"
908
+ msgstr ""
909
+ "Alguns dos add-ons e opções do plug-in Simple Membership aparecerão aqui (se "
910
+ "você os possuir)."
911
+
912
+ #: views/admin_addon_settings.php:13
913
+ msgid "Save Changes"
914
+ msgstr "Salvar alterações"
915
 
916
  #: views/admin_add_level.php:6
917
  msgid "Create new membership level."
918
+ msgstr "Criar novo nível de usuário"
919
 
920
  #: views/admin_add_level.php:11 views/admin_edit_level.php:10
921
  msgid "Membership Level Name"
922
+ msgstr "Nome de nível de usuário"
923
 
924
  #: views/admin_add_level.php:15 views/admin_edit_level.php:14
925
  msgid "Default WordPress Role"
926
+ msgstr "Função padrão no Wordpress"
927
 
928
  #: views/admin_add_level.php:19 views/admin_edit_level.php:18
929
+ msgid "Access Duration"
930
+ msgstr "Duração do acesso"
931
+
932
+ #: views/admin_add_level.php:22
933
+ msgid "No Expiry (Access for this level will not expire until cancelled"
934
+ msgstr ""
935
+ "Sem expiração (O acesso para este nível não irá epirar até ser canelado)"
936
+
937
+ #: views/admin_add_level.php:23 views/admin_add_level.php:25
938
+ #: views/admin_add_level.php:27 views/admin_add_level.php:29
939
+ #: views/admin_edit_level.php:22 views/admin_edit_level.php:25
940
+ #: views/admin_edit_level.php:28 views/admin_edit_level.php:31
941
+ msgid "Expire After"
942
+ msgstr "Expirar após"
943
+
944
+ #: views/admin_add_level.php:24 views/admin_edit_level.php:23
945
+ msgid "Days (Access expires after given number of days)"
946
+ msgstr "Dias (O acesso expira após o número informado de dias)"
947
+
948
+ #: views/admin_add_level.php:26
949
+ msgid "Weeks (Access expires after given number of weeks"
950
+ msgstr "Semanas (O acesso expira após o número informado de semanas)"
951
 
952
+ #: views/admin_add_level.php:28 views/admin_edit_level.php:29
953
+ msgid "Months (Access expires after given number of months)"
954
+ msgstr "Meses (O acesso expira após o número informado de meses)"
955
 
956
+ #: views/admin_add_level.php:30 views/admin_edit_level.php:32
957
+ msgid "Years (Access expires after given number of years)"
958
+ msgstr "Anos (O acesso expira após o número informado de anos)"
959
+
960
+ #: views/admin_add_level.php:31 views/admin_edit_level.php:34
961
+ msgid "Fixed Date Expiry"
962
+ msgstr "Expiração de data fixa"
963
+
964
+ #: views/admin_add_level.php:32 views/admin_edit_level.php:35
965
+ msgid "(Access expires on a fixed date)"
966
+ msgstr "(O acesso expira em uma data fixada)"
967
+
968
+ #: views/admin_add_level.php:38
969
  msgid "Add New Membership Level "
970
+ msgstr "Adicionar novo nível de usuário"
971
+
972
+ #: views/admin_add_ons_page.php:7
973
+ msgid "Simple WP Membership::Add-ons"
974
+ msgstr "Simple WP Membership::Add-ons"
975
+
976
+ #: views/admin_category_list.php:2
977
+ msgid "Simple WP Membership::Categories"
978
+ msgstr "Simple WP Membership::Categorias"
979
+
980
+ #: views/admin_category_list.php:7
981
+ msgid ""
982
+ "First of all, globally protect the category on your site by selecting "
983
+ "\"General Protection\" from the drop-down box below and then select the "
984
+ "categories that should be protected from non-logged in users."
985
+ msgstr ""
986
+ "Antes de qualquer coisa, efetue a proteção global de categoria no seu site "
987
+ "selecionando a \"Proteção Geral\" da caixa drop-down abaixo e depois "
988
+ "selecione as categorias que devem ser protegidas de usuários não logados."
989
+
990
+ #: views/admin_category_list.php:10
991
+ msgid ""
992
+ "Next, select an existing membership level from the drop-down box below and "
993
+ "then select the categories you want to grant access to (for that particular "
994
+ "membership level)."
995
+ msgstr ""
996
+ "Em seguida, selecione o nível de usuário da caixa drop-down e depois "
997
+ "selecione as categorias para as quais você deseja conceder acesso (para esse "
998
+ "nível de usuário específico)."
999
 
1000
  #: views/admin_edit.php:5
1001
  msgid "Edit Member"
1002
+ msgstr "Editar usuário"
1003
 
1004
  #: views/admin_edit.php:6
1005
  msgid "Edit existing member details."
1006
+ msgstr "Editar detalhes de usuário existente."
1007
 
1008
+ #: views/admin_edit.php:17
1009
+ msgid "(twice, leave empty to retain old password)"
1010
+ msgstr "(duas vezes, deixem em branco para reter a senha antiga)"
1011
 
1012
+ #: views/admin_edit.php:33
1013
+ msgid "Notify User"
1014
+ msgstr "Notificar usuário"
1015
+
1016
+ #: views/admin_edit.php:40
1017
+ msgid "Subscriber ID/Reference"
1018
+ msgstr "ID/Referência de assinante"
1019
+
1020
+ #: views/admin_edit.php:44
1021
+ msgid "Last Accessed From IP"
1022
+ msgstr "Último acesso do IP"
1023
+
1024
+ #: views/admin_edit.php:52
1025
  msgid "Edit User "
1026
+ msgstr "Editar Usuário"
1027
 
1028
  #: views/admin_edit_level.php:5
1029
  msgid "Edit membership level"
1030
+ msgstr "Editar nível de usuário"
1031
 
1032
  #: views/admin_edit_level.php:6
1033
  msgid "Edit membership level."
1034
+ msgstr "Editar nível de usuário"
1035
+
1036
+ #: views/admin_edit_level.php:21
1037
+ msgid "No Expiry (Access for this level will not expire until cancelled)"
1038
+ msgstr ""
1039
+ "Sem expiração (O acesso deste nível não irá expirar até que seja cancelado)"
1040
+
1041
+ #: views/admin_edit_level.php:26
1042
+ msgid "Weeks (Access expires after given number of weeks)"
1043
+ msgstr "Semanas (O acesso expira após número informado de semanas)"
1044
 
1045
+ #: views/admin_edit_level.php:41
1046
  msgid "Edit Membership Level "
1047
+ msgstr "Editar nível de usuário"
1048
 
1049
  #: views/admin_members.php:2
1050
  msgid "Simple WP Membership::Members"
1051
+ msgstr "Simple WP Membership::Usuários"
1052
 
1053
+ #: views/admin_members.php:3 views/admin_members_list.php:30
 
1054
  msgid "Add New"
1055
+ msgstr "Adicionar novo"
1056
 
1057
+ #: views/admin_membership_levels.php:2
 
 
 
 
1058
  msgid "Simple WP Membership::Membership Levels"
1059
+ msgstr "Simple WP Membership::Níveis de Usuário"
1060
+
1061
+ #: views/admin_membership_levels.php:12 views/admin_members_list.php:6
1062
+ msgid "search"
1063
+ msgstr "buscar"
1064
 
1065
  #: views/admin_membership_level_menu.php:2
1066
  msgid "Membership level"
1067
+ msgstr "Nível de usuário"
1068
 
1069
  #: views/admin_membership_level_menu.php:3
1070
  msgid "Manage Content Production"
1071
+ msgstr "Gerenciar produção de conteúdo"
1072
+
1073
+ #: views/admin_membership_level_menu.php:4
1074
+ msgid "Category Protection"
1075
+ msgstr "Proteção de categoria"
1076
 
1077
  #: views/admin_membership_manage.php:17
1078
  msgid "Example Content Protection Settings"
1079
+ msgstr "Exemplo de configurações de proteção de conteúdo "
 
 
 
 
1080
 
1081
+ #: views/admin_member_form_common_part.php:23
1082
+ msgid "Gender"
1083
+ msgstr "Gênero"
1084
 
1085
+ #: views/admin_member_form_common_part.php:30 views/edit.php:29
1086
+ msgid "Phone"
1087
+ msgstr "Telefone"
 
 
 
 
 
1088
 
1089
+ #: views/admin_member_form_common_part.php:34 views/edit.php:33
1090
+ msgid "Street"
1091
+ msgstr "Rua"
 
1092
 
1093
+ #: views/admin_member_form_common_part.php:38 views/edit.php:37
1094
+ msgid "City"
1095
+ msgstr "Cidade"
1096
 
1097
+ #: views/admin_member_form_common_part.php:42 views/edit.php:41
1098
+ msgid "State"
1099
+ msgstr "Estado"
 
1100
 
1101
+ #: views/admin_member_form_common_part.php:46 views/edit.php:45
1102
+ msgid "Zipcode"
1103
+ msgstr "Código Postal"
1104
 
1105
+ #: views/admin_member_form_common_part.php:50 views/edit.php:49
1106
+ msgid "Country"
1107
+ msgstr "País"
1108
 
1109
+ #: views/admin_member_form_common_part.php:54
1110
+ msgid "Company"
1111
+ msgstr "Empresa"
1112
 
1113
+ #: views/admin_member_form_common_part.php:58
1114
+ msgid "Member Since"
1115
+ msgstr "Usuário desde"
1116
 
1117
  #: views/admin_tools_settings.php:9
1118
  msgid "Generate a Registration Completion link"
1119
+ msgstr "Gerar um link de conclusão de cadastro"
1120
 
1121
  #: views/admin_tools_settings.php:12
1122
  msgid ""
1124
  "your customer if they have missed the email that was automatically sent out "
1125
  "to them after the payment."
1126
  msgstr ""
1127
+ "Você pode gerar aqui um link de conclusão de cadastro manualmente e informa-"
1128
+ "lo ao seu cliente se ele tiver perdido o email que foi automaticamente "
1129
+ "enviado a ele após o pagamento."
1130
 
1131
  #: views/admin_tools_settings.php:17
1132
  msgid "Generate Registration Completion Link"
1133
+ msgstr "Gerar link de conclusão de cadastro"
1134
 
1135
  #: views/admin_tools_settings.php:20
1136
  msgid "OR"
1138
 
1139
  #: views/admin_tools_settings.php:21
1140
  msgid "For All Pending Registrations"
1141
+ msgstr "Para todos os cadastros pendentes"
1142
 
1143
  #: views/admin_tools_settings.php:24
1144
  msgid "Registration Completion Links Will Appear Below:"
1145
+ msgstr "Links de conclusão de cadastro aparecerão abaixo:"
1146
 
1147
  #: views/admin_tools_settings.php:31
1148
  msgid "Send Registration Reminder Email too"
1149
+ msgstr "Enviar também email de lembrete de cadastro"
1150
 
1151
  #: views/admin_tools_settings.php:34
1152
  msgid "Submit"
1153
  msgstr "Enviar"
1154
 
1155
+ #: views/edit.php:59
1156
  msgid "Update"
1157
+ msgstr "Atualizar"
 
 
 
 
1158
 
1159
  #: views/forgot_password.php:12
1160
  msgid "Reset Password"
1161
+ msgstr "Redefinir Senha"
1162
 
1163
+ #: views/loggedin.php:3
1164
  msgid "Logged in as"
1165
  msgstr "Logado como"
1166
 
1167
+ #: views/loggedin.php:11
1168
  msgid "Membership"
1169
+ msgstr "Usuário"
1170
 
1171
+ #: views/loggedin.php:15
1172
  msgid "Account Expiry"
1173
+ msgstr "Expiração de conta"
1174
 
1175
+ #: views/loggedin.php:19
1176
  msgid "Logout"
1177
  msgstr "Sair"
1178
 
1179
+ #: views/login.php:18
1180
  msgid "Remember Me"
1181
+ msgstr "Lembrar-se de mim"
1182
 
1183
+ #: views/login.php:24
1184
  msgid "Forgot Password"
1185
+ msgstr "Esqueceu sua senha"
1186
+
1187
+ #: views/payments/admin_all_payment_transactions.php:7
1188
+ msgid "All the payments/transactions of your members are recorded here."
1189
+ msgstr "Todos os pagamentos/transações de seus usuários serão registrados aqui"
1190
+
1191
+ #: views/payments/admin_all_payment_transactions.php:14
1192
+ msgid "Search for a transaction by using email or name"
1193
+ msgstr "Buscar por transações a partir do email ou do nome"
1194
+
1195
+ #: views/payments/admin_all_payment_transactions.php:18
1196
+ msgid "Search"
1197
+ msgstr "Buscar"
1198
+
1199
+ #: views/payments/admin_create_payment_buttons.php:13
1200
+ msgid ""
1201
+ "You can create new payment button for your memberships using this interface."
1202
+ msgstr "Você pode criar um novo botão de pagamento utilizando esta interface"
1203
+
1204
+ #: views/payments/admin_create_payment_buttons.php:22
1205
+ msgid "Select Payment Button Type"
1206
+ msgstr "Selecionar tipo de botão de pagamento"
1207
+
1208
+ #: views/payments/admin_create_payment_buttons.php:34
1209
+ msgid "Next"
1210
+ msgstr "Próximo"
1211
+
1212
+ #: views/payments/admin_edit_payment_buttons.php:12
1213
+ msgid "You can edit a payment button using this interface."
1214
+ msgstr "Você pode editar um botão de pagamento utilizando esta interface"
1215
+
1216
+ #: views/payments/admin_payments_page.php:9
1217
+ msgid "Simple Membership::Payments"
1218
+ msgstr "Simple Membership::Pagamentos"
1219
+
1220
+ #: views/payments/admin_payment_buttons.php:7
1221
+ msgid ""
1222
+ "All the membership buttons that you created in the plugin are displayed here."
1223
+ msgstr "Todos os botões de cadastro de usuário que você criou aparecerão aqui."
1224
+
1225
+ #: views/payments/admin_payment_settings.php:31
1226
+ msgid "PayPal Integration Settings"
1227
+ msgstr "Configurações de integração com o PayPal"
1228
+
1229
+ #: views/payments/admin_payment_settings.php:34
1230
+ msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
1231
+ msgstr "Gerar o código de \"Variáveis Avançadas\" para seu botão PayPal"
1232
+
1233
+ #: views/payments/admin_payment_settings.php:37
1234
+ msgid "Enter the Membership Level ID"
1235
+ msgstr "Informe o ID de nível de usuário"
1236
+
1237
+ #: views/payments/admin_payment_settings.php:39
1238
+ msgid "Generate Code"
1239
+ msgstr "Gerar Código"
1240
+
1241
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:18
1242
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:192
1243
+ msgid "PayPal Buy Now Button Configuration"
1244
+ msgstr "Configuração do botão \"Comprar Agora\" do PayPal"
1245
+
1246
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:28
1247
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:209
1248
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:29
1249
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:302
1250
+ msgid "Button Title"
1251
+ msgstr "Título do botão"
1252
+
1253
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:46
1254
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:227
1255
+ msgid "Payment Amount"
1256
+ msgstr "Valor do Pagamento"
1257
+
1258
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:54
1259
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:235
1260
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:47
1261
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:320
1262
+ msgid "Payment Currency"
1263
+ msgstr "Moeda de Pagamento"
1264
+
1265
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:93
1266
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:274
1267
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:173
1268
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:446
1269
+ msgid "Return URL"
1270
+ msgstr "URL de Retorno"
1271
+
1272
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:101
1273
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:282
1274
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:86
1275
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:359
1276
+ msgid "PayPal Email"
1277
+ msgstr "Email do PayPal"
1278
+
1279
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:109
1280
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
1281
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:181
1282
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:454
1283
+ msgid "Button Image URL"
1284
+ msgstr "URL da Imagem do botão"
1285
+
1286
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:119
1287
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:300
1288
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:193
1289
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:466
1290
+ msgid "Save Payment Data"
1291
+ msgstr "Salvar Dados do Pagamento"
1292
+
1293
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:201
1294
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:294
1295
+ msgid "Button ID"
1296
+ msgstr "ID do Botão"
1297
+
1298
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:20
1299
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:288
1300
+ msgid "PayPal Subscription Button Configuration"
1301
+ msgstr "Configuração do Botão de Assinatura do PayPal"
1302
+
1303
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:94
1304
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
1305
+ msgid "Billing Amount Each Cycle"
1306
+ msgstr "Cobrança de cada Ciclo"
1307
+
1308
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:102
1309
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
1310
+ msgid "Billing Cycle"
1311
+ msgstr "Ciclo de cobrança"
1312
+
1313
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:115
1314
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:388
1315
+ msgid "Billing Cycle Count"
1316
+ msgstr "Contagem de Ciclo de Cobrança"
1317
+
1318
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:123
1319
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
1320
+ msgid "Re-attempt on Failure"
1321
+ msgstr "Tentar novamente se falhar"
1322
+
1323
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:136
1324
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:409
1325
+ msgid ""
1326
+ "Trial Billing Details (Leave empty if you are not offering a trial period)"
1327
+ msgstr ""
1328
+ "Detalhes da Cobrança de período de experimentação (Deixe em branco se você "
1329
+ "não oferecer uma período de experimentação)"
1330
+
1331
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:142
1332
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:415
1333
+ msgid "Trial Billing Amount"
1334
+ msgstr "Valor do período de experimentação"
1335
+
1336
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:150
1337
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:423
1338
+ msgid "Trial Billing Period"
1339
+ msgstr "Período de cobrança de experimentação"
1340
+
1341
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:167
1342
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:440
1343
+ msgid "Optional Details"
1344
+ msgstr "Detalhes Opcionais"
1345
+
1346
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:77
1347
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:79
1348
+ msgid "Buy Now"
1349
+ msgstr "Comprar Agora"
1350
+
1351
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:197
1352
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:199
1353
+ msgid "Subscribe Now"
1354
+ msgstr "Assinar Agora"
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: smp7, wp.insider, amijanina
3
  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,
5
  Requires at least: 3.3
6
- Tested up to: 4.4
7
- Stable tag: 3.1.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -57,11 +57,13 @@ You can create a free forum user account and ask your questions.
57
  * Membership management side is handled by the plugin.
58
  * Ability to manually approve your members.
59
  * Ability to import WordPress users as members.
 
60
  * Can be translated to any language.
61
  * Hide the admin toolbar from the frontend of your site.
62
- * Allow your members to deleter their membership accounts.
63
  * Send quick notification email to your members.
64
  * Customize the password reset email for members.
 
65
  * The login and registration widgets will be responsive if you are using a responsive theme.
66
  * Front-end member registration page.
67
  * Front-end member profiles.
@@ -115,6 +117,29 @@ https://simple-membership-plugin.com/
115
 
116
  == Changelog ==
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  = 3.1.5 =
119
  - Added a new shortcode [swpm_show_expiry_date] to show the logged-in member's expiry details.
120
  - The search feature in the members menu will search the company name, city, state, country fields also.
3
  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,
5
  Requires at least: 3.3
6
+ Tested up to: 4.4.1
7
+ Stable tag: 3.1.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
57
  * Membership management side is handled by the plugin.
58
  * Ability to manually approve your members.
59
  * Ability to import WordPress users as members.
60
+ * Filter members list by account status.
61
  * Can be translated to any language.
62
  * Hide the admin toolbar from the frontend of your site.
63
+ * Allow your members to delete their membership accounts.
64
  * Send quick notification email to your members.
65
  * Customize the password reset email for members.
66
+ * Use Google reCAPTCHA on your member registration form.
67
  * The login and registration widgets will be responsive if you are using a responsive theme.
68
  * Front-end member registration page.
69
  * Front-end member profiles.
117
 
118
  == Changelog ==
119
 
120
+ = 3.1.8 =
121
+ - Improved the members and payments menu rendering for smaller screen devices.
122
+ - Added a utility function to easily output a formatted date in the plugin according to the WordPress's date format settings.
123
+ - Fixed a bug in the wp username and email validation functionality. Thanks to Klaas van der Linden for pointing it out.
124
+ - The membership password reset form has been restructured (the HTML table has been removed).
125
+
126
+ = 3.1.7 =
127
+ - Added debug logging for after a password is reset successfully.
128
+ - The plugin will prevent WordPress's default password reset email notification from going out when a member resets the password.
129
+ - Added a new bulk action item. Activate account and notify members in bulk. Customize the activation email from the email settings menu of the plugin.
130
+ - Added validation in the bulk operation function to check and make sure that multiple records were selected before trying the bulk action.
131
+ - Updated the Portuguese (Brazil) language translation file. The translation was updated by Fernando Telles.
132
+ - Updated the Tools interface of the plugin.
133
+ - The members list can now be filtered by account status (from the members interface)
134
+ - The members list now shows "incomplete" keyword in the username field for the member profiles that are incomplete.
135
+ - Added an "Add Member" tab in the members menu.
136
+
137
+ = 3.1.6 =
138
+ - Added a new feature to show the admin toolbar to admin users only.
139
+ - Added CSS for membership buy buttons to force their width and height to be auto.
140
+ - Added a few utility functions to retrieve a member's record from custom PHP code (useful for developers).
141
+ - Added the free Google recaptcha addon for registration forms.
142
+
143
  = 3.1.5 =
144
  - Added a new shortcode [swpm_show_expiry_date] to show the logged-in member's expiry details.
145
  - The search feature in the members menu will search the company name, city, state, country fields also.
simple-wp-membership.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Simple WordPress Membership
4
- Version: 3.1.5
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.1.5');
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.1.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.1.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
@@ -8,7 +8,6 @@ echo '<link type="text/css" rel="stylesheet" href="' . SIMPLE_WP_MEMBERSHIP_URL
8
 
9
  <div id="poststuff"><div id="post-body">
10
 
11
-
12
  <?php
13
  $addons_data = array();
14
  $addon_1 = array(
@@ -90,6 +89,22 @@ echo '<link type="text/css" rel="stylesheet" href="' . SIMPLE_WP_MEMBERSHIP_URL
90
  'page_url' => 'https://simple-membership-plugin.com/simple-membership-and-wp-affiliate-platform-integration/',
91
  );
92
  array_push($addons_data, $addon_10);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
  /*** Show the addons list ***/
95
  foreach ($addons_data as $addon) {
8
 
9
  <div id="poststuff"><div id="post-body">
10
 
 
11
  <?php
12
  $addons_data = array();
13
  $addon_1 = array(
89
  'page_url' => 'https://simple-membership-plugin.com/simple-membership-and-wp-affiliate-platform-integration/',
90
  );
91
  array_push($addons_data, $addon_10);
92
+
93
+ $addon_11 = array(
94
+ 'name' => 'bbPress Integration',
95
+ 'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/swpm-bbpress-integration.png',
96
+ 'description' => 'Adds bbPress forum integration with the simple membership plugin to offer members only forum functionality.',
97
+ 'page_url' => 'https://simple-membership-plugin.com/simple-membership-bbpress-forum-integration-addon/',
98
+ );
99
+ array_push($addons_data, $addon_11);
100
+
101
+ $addon_12 = array(
102
+ 'name' => 'Google reCAPTCHA',
103
+ 'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/google-recaptcha-addon.png',
104
+ 'description' => 'Allows you to add Google reCAPTCHA to your membership registration form/page.',
105
+ 'page_url' => 'https://simple-membership-plugin.com/simple-membership-and-google-recaptcha-integration/',
106
+ );
107
+ array_push($addons_data, $addon_12);
108
 
109
  /*** Show the addons list ***/
110
  foreach ($addons_data as $addon) {
views/admin_edit.php CHANGED
@@ -7,7 +7,24 @@
7
  <table class="form-table">
8
  <tr class="form-field form-required">
9
  <th scope="row"><label for="user_name"><?php echo SwpmUtils::_('Username'); ?> <span class="description"><?php echo SwpmUtils::_('(required)'); ?></span></label></th>
10
- <td><?php echo esc_attr($user_name); ?></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  </tr>
12
  <tr class="form-required">
13
  <th scope="row"><label for="email"><?php echo SwpmUtils::_('E-mail'); ?> <span class="description"><?php echo SwpmUtils::_('(required)'); ?></span></label></th>
7
  <table class="form-table">
8
  <tr class="form-field form-required">
9
  <th scope="row"><label for="user_name"><?php echo SwpmUtils::_('Username'); ?> <span class="description"><?php echo SwpmUtils::_('(required)'); ?></span></label></th>
10
+ <td>
11
+ <?php
12
+ if (empty($user_name)) {
13
+ //This is a record with incomplete registration. The member need to complete the registration by clicking on the unique link sent to them
14
+ ?>
15
+ <div class="swpm-yellow-box" style="max-width:450px;">
16
+ <p>This user account registration is not complete yet. The member needs to click on the unique registration completion link (sent to his email) and complete the registration by choosing a username and password.</p>
17
+ <br />
18
+ <p>You can go to the <a href="admin.php?page=simple_wp_membership_settings&tab=4" target="_blank">Tools Interface</a> and generate another unique "Registration Completion" link then send the link to the user. Alternatively, you can use that link yourself and complete the registration on behalf of the user.</p>
19
+ <br />
20
+ <p>If you suspect that this user has lost interest in becoming a member then you can delete this member record.</p>
21
+ </div>
22
+ <?php
23
+ } else {
24
+ echo esc_attr($user_name);
25
+ }
26
+ ?>
27
+ </td>
28
  </tr>
29
  <tr class="form-required">
30
  <th scope="row"><label for="email"><?php echo SwpmUtils::_('E-mail'); ?> <span class="description"><?php echo SwpmUtils::_('(required)'); ?></span></label></th>
views/admin_members_list.php CHANGED
@@ -1,12 +1,3 @@
1
- <form method="post">
2
- <p class="search-box">
3
- <label class="screen-reader-text" for="search_id-search-input">
4
- search:</label>
5
- <input id="search_id-search-input" type="text" name="s" value="" />
6
- <input id="search-submit" class="button" type="submit" name="" value="<?php echo SwpmUtils::_('search') ?>" />
7
- <input type="hidden" name="page" value="simple_wp_membership" />
8
- </p>
9
- </form>
10
  <?php
11
  if (isset($_REQUEST['member_action']) && $_REQUEST['member_action'] == 'delete') {
12
  //Delete this record
@@ -18,7 +9,26 @@ if (isset($_REQUEST['member_action']) && $_REQUEST['member_action'] == 'delete')
18
  }
19
 
20
  $this->prepare_items();
 
21
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  <form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
23
  <!-- For plugins, we also need to ensure that the form posts back to our current page -->
24
  <input type="hidden" name="page" value="<?php echo $_REQUEST['page']; ?>" />
 
 
 
 
 
 
 
 
 
1
  <?php
2
  if (isset($_REQUEST['member_action']) && $_REQUEST['member_action'] == 'delete') {
3
  //Delete this record
9
  }
10
 
11
  $this->prepare_items();
12
+ $count = $this->get_user_count_by_account_state();
13
  ?>
14
+ <ul class="subsubsub">
15
+ <li class="all"><a href="admin.php?page=simple_wp_membership" <?php echo $status == ""? "class='current'": "";?> >All <span class="count">(<?php echo $count['all'];?>)</span></a> |</li>
16
+ <li class="active"><a href="admin.php?page=simple_wp_membership&status=active" <?php echo $status == "active"? "class='current'": "";?>>Active <span class="count">(<?php echo isset($count['active'])? $count['active']: 0 ?>)</span></a> |</li>
17
+ <li class="active"><a href="admin.php?page=simple_wp_membership&status=inactive" <?php echo $status == "inactive"? "class='current'": "";?>>Inactive <span class="count">(<?php echo isset($count['inactive'])? $count['inactive']: 0 ?>)</span></a> |</li>
18
+ <li class="pending"><a href="admin.php?page=simple_wp_membership&status=pending" <?php echo $status == "pending"? "class='current'": "";?>>Pending <span class="count">(<?php echo isset($count['pending'])? $count['pending']: 0 ?>)</span></a> |</li>
19
+ <li class="incomplete"><a href="admin.php?page=simple_wp_membership&status=incomplete" <?php echo $status == "incomplete"? "class='current'": "";?>>Incomplete <span class="count">(<?php echo isset($count['incomplete'])? $count['incomplete']: 0 ?>)</span></a> |</li>
20
+ <li class="expired"><a href="admin.php?page=simple_wp_membership&status=expired" <?php echo $status == "expired"? "class='current'": "";?>>Expired <span class="count">(<?php echo isset($count['expired'])? $count['expired']: 0 ?>)</span></a></li>
21
+ </ul>
22
+
23
+ <br />
24
+ <form method="post">
25
+ <p class="search-box">
26
+ <input id="search_id-search-input" type="text" name="s" value="<?php echo isset($_REQUEST['s'])? esc_attr($_REQUEST['s']): ''; ?>" />
27
+ <input id="search-submit" class="button" type="submit" name="" value="<?php echo SwpmUtils::_('Search') ?>" />
28
+ <input type="hidden" name="page" value="simple_wp_membership" />
29
+ </p>
30
+ </form>
31
+
32
  <form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
33
  <!-- For plugins, we also need to ensure that the form posts back to our current page -->
34
  <input type="hidden" name="page" value="<?php echo $_REQUEST['page']; ?>" />
views/admin_members_menu.php CHANGED
@@ -1,5 +1,6 @@
1
  <h2 class="nav-tab-wrapper">
2
  <a class="nav-tab <?php echo ($selected == "") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership"><?php echo SwpmUtils::_('Members') ?></a>
 
3
  <?php
4
  $menu = apply_filters('swpm_admin_members_menu_hook', array());
5
  foreach ($menu as $member_action => $title):
1
  <h2 class="nav-tab-wrapper">
2
  <a class="nav-tab <?php echo ($selected == "") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership"><?php echo SwpmUtils::_('Members') ?></a>
3
+ <a class="nav-tab <?php echo ($selected == "add") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership&member_action=add"><?php echo SwpmUtils::_('Add Member') ?></a>
4
  <?php
5
  $menu = apply_filters('swpm_admin_members_menu_hook', array());
6
  foreach ($menu as $member_action => $title):
views/admin_tools_settings.php CHANGED
@@ -14,25 +14,42 @@
14
  <form action="" method="post">
15
  <table>
16
  <tr>
17
- <?php echo SwpmUtils::_('Generate Registration Completion Link') ?>
18
  <br /><input type="radio" value="one" name="swpm_link_for" /><?php SwpmUtils::e('For a Particular Member ID'); ?>
19
  <input type="text" name="member_id" size="5" value="" />
20
- <br /> <strong> <?php echo SwpmUtils::_('OR') ?> </strong>
21
- <br /><input type="radio" checked="checked" value="all" name="swpm_link_for" /> <?php echo SwpmUtils::_('For All Pending Registrations') ?>
22
  </tr>
23
  <tr>
24
- <td><?php echo SwpmUtils::_('Registration Completion Links Will Appear Below:') ?><br/>
25
- <?php foreach ($links as $key => $link): ?>
26
- <input type="text" size="100" readonly="readonly" name="link[<?php echo $key ?>]" value="<?php echo $link; ?>"/><br/>
27
- <?php endforeach; ?>
28
  </td>
29
  </tr>
30
  <tr>
31
- <td><?php echo SwpmUtils::_('Send Registration Reminder Email too') ?> <input type="checkbox" value="checked" name="swpm_reminder_email"></td>
 
 
 
32
  </tr>
 
33
  <tr>
34
- <td><input type="submit" name="submit" class="button-primary" value="<?php echo SwpmUtils::_('Submit') ?>" /></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  </tr>
 
36
  </table>
37
  </form>
38
 
14
  <form action="" method="post">
15
  <table>
16
  <tr>
17
+ <?php echo SwpmUtils::_('Generate Registration Completion Link') ?>
18
  <br /><input type="radio" value="one" name="swpm_link_for" /><?php SwpmUtils::e('For a Particular Member ID'); ?>
19
  <input type="text" name="member_id" size="5" value="" />
20
+ <br /><strong><?php echo SwpmUtils::_('OR') ?></strong>
21
+ <br /><input type="radio" checked="checked" value="all" name="swpm_link_for" /> <?php echo SwpmUtils::_('For All Incomplete Registrations') ?>
22
  </tr>
23
  <tr>
24
+ <td>
25
+ <div class="swpm-margin-top-10"></div>
26
+ <?php echo SwpmUtils::_('Send Registration Reminder Email too') ?> <input type="checkbox" value="checked" name="swpm_reminder_email">
 
27
  </td>
28
  </tr>
29
  <tr>
30
+ <td>
31
+ <div class="swpm-margin-top-10"></div>
32
+ <input type="submit" name="submit" class="button-primary" value="<?php echo SwpmUtils::_('Submit') ?>" />
33
+ </td>
34
  </tr>
35
+
36
  <tr>
37
+ <td>
38
+ <div class="swpm-margin-top-10"></div>
39
+ <?php
40
+ if(!empty($links)){
41
+ echo '<div class="swpm-green-box">'. SwpmUtils::_('Link(s) generated successfully. The following link(s) can be used to complete the registration.') .'</div>';
42
+ }else{
43
+ echo '<div class="swpm-grey-box">'. SwpmUtils::_('Registration completion links will appear below').'</div>';
44
+ }
45
+ ?>
46
+ <div class="swpm-margin-top-10"></div>
47
+ <?php foreach ($links as $key => $link){ ?>
48
+ <input type="text" size="120" readonly="readonly" name="link[<?php echo $key ?>]" value="<?php echo $link; ?>"/><br/>
49
+ <?php } ?>
50
+ </td>
51
  </tr>
52
+
53
  </table>
54
  </form>
55
 
views/edit.php CHANGED
@@ -56,7 +56,8 @@
56
  </td>
57
  </tr>
58
  </table>
59
- <p align="center"><input type="submit" value="<?php echo SwpmUtils::_('Update')?>" class="swpm-edit-profile-submit" name="swpm_editprofile_submit" />
 
60
  </p>
61
  <?php echo SwpmUtils::delete_account_button(); ?>
62
 
56
  </td>
57
  </tr>
58
  </table>
59
+ <p class="swpm-edit-profile-submit-section">
60
+ <input type="submit" value="<?php echo SwpmUtils::_('Update')?>" class="swpm-edit-profile-submit" name="swpm_editprofile_submit" />
61
  </p>
62
  <?php echo SwpmUtils::delete_account_button(); ?>
63
 
views/forgot_password.php CHANGED
@@ -1,17 +1,15 @@
1
  <div class="swpm-pw-reset-widget-form">
2
  <form id="swpm-pw-reset-form" name="swpm-reset-form" method="post" action="">
3
- <table width="95%" border="0" cellpadding="3" cellspacing="5" class="forms">
4
- <tr>
5
- <td colspan="2"><label for="swpm_reset_email" class="swpm_label swpm-pw-reset-email-label"><?php echo SwpmUtils::_('Email Address')?></label></td>
6
- </tr>
7
- <tr>
8
- <td colspan="2"><input type="text" class="swpm_text_field swpm-pw-reset-text" id="swpm_reset_email" value="" size="40" name="swpm_reset_email" /></td>
9
- </tr>
10
- <tr>
11
- <td colspan="2">
12
- <input type="submit" name="swpm-reset" value="<?php echo SwpmUtils::_('Reset Password'); ?>" class="swpm-pw-reset-submit" />
13
- </td>
14
- </tr>
15
- </table>
16
  </form>
17
  </div>
1
  <div class="swpm-pw-reset-widget-form">
2
  <form id="swpm-pw-reset-form" name="swpm-reset-form" method="post" action="">
3
+ <div class="swpm-pw-reset-widget-inside">
4
+ <div class="swpm-pw-reset-email swpm-margin-top-10">
5
+ <label for="swpm_reset_email" class="swpm_label swpm-pw-reset-email-label"><?php echo SwpmUtils::_('Email Address')?></label>
6
+ </div>
7
+ <div class="swpm-pw-reset-email-input swpm-margin-top-10">
8
+ <input type="text" name="swpm_reset_email" class="swpm-text-field swpm-pw-reset-text" id="swpm_reset_email" value="" size="60" />
9
+ </div>
10
+ <div class="swpm-pw-reset-submit-button swpm-margin-top-10">
11
+ <input type="submit" name="swpm-reset" class="swpm-pw-reset-submit" value="<?php echo SwpmUtils::_('Reset Password'); ?>" />
12
+ </div>
13
+ </div>
 
 
14
  </form>
15
  </div>
views/payments/payment-gateway/paypal_button_shortcode_view.php CHANGED
@@ -9,7 +9,7 @@ function swpm_render_pp_buy_now_button_sc_output($button_code, $args) {
9
 
10
  $button_id = isset($args['id']) ? $args['id'] : '';
11
  if (empty($button_id)) {
12
- return '<p style="color: red;">Error! swpm_render_pp_buy_now_button_sc_output() function requires the button ID value to be passed to it.</p>';
13
  }
14
 
15
  //Check new_window parameter
@@ -19,10 +19,15 @@ function swpm_render_pp_buy_now_button_sc_output($button_code, $args) {
19
  $button_cpt = get_post($button_id); //Retrieve the CPT for this button
20
 
21
  $membership_level_id = get_post_meta($button_id, 'membership_level_id', true);
 
 
 
 
 
22
  $paypal_email = get_post_meta($button_id, 'paypal_email', true);
23
  $payment_amount = get_post_meta($button_id, 'payment_amount', true);
24
  if (!is_numeric($payment_amount)) {
25
- return '<p style="color: red;">Error! The payment amount value of the button must be a numeric number. Example: 49.50 </p>';
26
  }
27
  $payment_amount = round($payment_amount, 2); //round the amount to 2 decimal place.
28
  $payment_currency = get_post_meta($button_id, 'payment_currency', true);
@@ -108,6 +113,11 @@ function swpm_render_pp_subscription_button_sc_output($button_code, $args) {
108
  $button_cpt = get_post($button_id); //Retrieve the CPT for this button
109
 
110
  $membership_level_id = get_post_meta($button_id, 'membership_level_id', true);
 
 
 
 
 
111
  $paypal_email = get_post_meta($button_id, 'paypal_email', true);
112
  $payment_currency = get_post_meta($button_id, 'payment_currency', true);
113
 
9
 
10
  $button_id = isset($args['id']) ? $args['id'] : '';
11
  if (empty($button_id)) {
12
+ return '<p class="swpm-red-box">Error! swpm_render_pp_buy_now_button_sc_output() function requires the button ID value to be passed to it.</p>';
13
  }
14
 
15
  //Check new_window parameter
19
  $button_cpt = get_post($button_id); //Retrieve the CPT for this button
20
 
21
  $membership_level_id = get_post_meta($button_id, 'membership_level_id', true);
22
+ //Verify that this membership level exists (to prevent user paying for a level that has been deleted)
23
+ if(!SwpmUtils::membership_level_id_exists($membership_level_id)){
24
+ return '<p class="swpm-red-box">Error! The membership level specified in this button does not exist. You may have deleted this membership level. Edit the button and use the correct membership level.</p>';
25
+ }
26
+
27
  $paypal_email = get_post_meta($button_id, 'paypal_email', true);
28
  $payment_amount = get_post_meta($button_id, 'payment_amount', true);
29
  if (!is_numeric($payment_amount)) {
30
+ return '<p class="swpm-red-box">Error! The payment amount value of the button must be a numeric number. Example: 49.50 </p>';
31
  }
32
  $payment_amount = round($payment_amount, 2); //round the amount to 2 decimal place.
33
  $payment_currency = get_post_meta($button_id, 'payment_currency', true);
113
  $button_cpt = get_post($button_id); //Retrieve the CPT for this button
114
 
115
  $membership_level_id = get_post_meta($button_id, 'membership_level_id', true);
116
+ //Verify that this membership level exists (to prevent user paying for a level that has been deleted)
117
+ if(!SwpmUtils::membership_level_id_exists($membership_level_id)){
118
+ return '<p class="swpm-red-box">Error! The membership level specified in this button does not exist. You may have deleted this membership level. Edit the button and use the correct membership level.</p>';
119
+ }
120
+
121
  $paypal_email = get_post_meta($button_id, 'paypal_email', true);
122
  $payment_currency = get_post_meta($button_id, 'payment_currency', true);
123