Simple Membership - Version 3.2.1

Version Description

  • Added a new filter (swpm_transactions_menu_items_per_page) that can be used to customize the number of items that is listed in the transactions menu.
  • Added more sorting option in the transactions table.
  • Added sanitization for the sort inputs in the member transactions table.
  • Fixed an issue with the auto delete pending account settings.
  • Changed admin heading structure from h2 to h1.
Download this release

Release Info

Developer wp.insider
Plugin Icon 128x128 Simple Membership
Version 3.2.1
Comparing to
See all releases

Code changes from version 3.1.8 to 3.2.1

Files changed (44) hide show
  1. classes/admin-includes/class.swpm-payment-buttons-list-table.php +6 -5
  2. classes/admin-includes/class.swpm-payments-list-table.php +8 -1
  3. classes/class.simple-wp-membership.php +15 -9
  4. classes/class.swpm-access-control.php +5 -3
  5. classes/class.swpm-auth.php +2 -0
  6. classes/class.swpm-category-list.php +21 -10
  7. classes/class.swpm-front-registration.php +2 -3
  8. classes/class.swpm-init-time-tasks.php +2 -1
  9. classes/class.swpm-members.php +1 -1
  10. classes/class.swpm-membership-levels.php +5 -4
  11. classes/class.swpm-protection-base.php +39 -21
  12. classes/class.swpm-registration.php +5 -0
  13. classes/class.swpm-settings.php +2 -0
  14. classes/class.swpm-utils-misc.php +27 -0
  15. classes/class.swpm-utils-template.php +42 -0
  16. classes/class.swpm-utils.php +8 -1
  17. images/addons/google-first-click-free-addon.png +0 -0
  18. images/addons/show-member-info.png +0 -0
  19. ipn/swpm_handle_pp_ipn.php +5 -4
  20. ipn/swpm_handle_subsc_ipn.php +6 -9
  21. languages/swpm-ca_ES.mo +0 -0
  22. languages/swpm-ca_ES.po +1324 -0
  23. readme.txt +30 -2
  24. simple-wp-membership.php +3 -2
  25. views/add.php +8 -8
  26. views/admin_add.php +0 -1
  27. views/admin_add_ons_page.php +17 -1
  28. views/admin_addon_settings.php +1 -1
  29. views/admin_category_list.php +1 -1
  30. views/admin_members.php +2 -2
  31. views/admin_membership_levels.php +2 -2
  32. views/admin_membership_manage.php +1 -1
  33. views/admin_settings.php +1 -1
  34. views/admin_tools_settings.php +1 -1
  35. views/edit.php +14 -14
  36. views/loggedin.php +3 -0
  37. views/login.php +13 -7
  38. views/payments/admin_all_payment_transactions.php +1 -1
  39. views/payments/admin_create_payment_buttons.php +1 -1
  40. views/payments/admin_edit_payment_buttons.php +2 -2
  41. views/payments/admin_payment_settings.php +1 -1
  42. views/payments/admin_payments_page.php +1 -1
  43. views/payments/payment-gateway/admin_paypal_buy_now_button.php +25 -23
  44. views/payments/payment-gateway/admin_paypal_subscription_button.php +32 -34
classes/admin-includes/class.swpm-payment-buttons-list-table.php CHANGED
@@ -16,7 +16,7 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
16
  'ajax' => false //does this table support ajax?
17
  ));
18
 
19
- $this->per_page = 30;
20
  }
21
 
22
  function column_default($item, $column_name) {
@@ -75,9 +75,10 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
75
  }
76
 
77
  function get_sortable_columns() {
78
- $sortable_columns = array(
79
- 'ID' => array('ID', false), //true means its already sorted
80
- );
 
81
  return $sortable_columns;
82
  }
83
 
@@ -106,7 +107,7 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
106
  function process_delete_action() {
107
 
108
  if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_payment_btn') { //Delete link was clicked for a row in list table
109
- $record_id = strip_tags($_REQUEST['button_id']);
110
  wp_delete_post( $record_id );
111
  $success_msg = '<div id="message" class="updated"><p>';
112
  $success_msg .= SwpmUtils::_('The selected entry was deleted!');
16
  'ajax' => false //does this table support ajax?
17
  ));
18
 
19
+ $this->per_page = 50;
20
  }
21
 
22
  function column_default($item, $column_name) {
75
  }
76
 
77
  function get_sortable_columns() {
78
+ $sortable_columns = array();
79
+ // $sortable_columns = array(
80
+ // 'ID' => array('ID', false), //true means its already sorted
81
+ // );
82
  return $sortable_columns;
83
  }
84
 
107
  function process_delete_action() {
108
 
109
  if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_payment_btn') { //Delete link was clicked for a row in list table
110
+ $record_id = sanitize_text_field($_REQUEST['button_id']);
111
  wp_delete_post( $record_id );
112
  $success_msg = '<div id="message" class="updated"><p>';
113
  $success_msg .= SwpmUtils::_('The selected entry was deleted!');
classes/admin-includes/class.swpm-payments-list-table.php CHANGED
@@ -89,6 +89,8 @@ class SWPMPaymentsListTable extends WP_List_Table {
89
  $sortable_columns = array(
90
  'id' => array('id', false), //true means its already sorted
91
  'membership_level' => array('membership_level', false),
 
 
92
  );
93
  return $sortable_columns;
94
  }
@@ -128,7 +130,7 @@ class SWPMPaymentsListTable extends WP_List_Table {
128
  function prepare_items() {
129
 
130
  // Lets decide how many records per page to show
131
- $per_page = 50;
132
 
133
  $columns = $this->get_columns();
134
  $hidden = array();
@@ -145,6 +147,11 @@ class SWPMPaymentsListTable extends WP_List_Table {
145
  $orderby_column = "id";
146
  $sort_order = "DESC";
147
  }
 
 
 
 
 
148
  global $wpdb;
149
  $payments_table_name = $wpdb->prefix . "swpm_payments_tbl";
150
 
89
  $sortable_columns = array(
90
  'id' => array('id', false), //true means its already sorted
91
  'membership_level' => array('membership_level', false),
92
+ 'last_name' => array('last_name', false),
93
+ 'txn_date' => array('txn_date', false),
94
  );
95
  return $sortable_columns;
96
  }
130
  function prepare_items() {
131
 
132
  // Lets decide how many records per page to show
133
+ $per_page = apply_filters('swpm_transactions_menu_items_per_page', 50);
134
 
135
  $columns = $this->get_columns();
136
  $hidden = array();
147
  $orderby_column = "id";
148
  $sort_order = "DESC";
149
  }
150
+
151
+ //Sanitize the inputs
152
+ $orderby_column = SwpmUtils::sanitize_value_by_array($orderby_column, $sortable);
153
+ $sort_order = SwpmUtils::sanitize_value_by_array($sort_order, array('DESC' => '1', 'ASC' => '1'));
154
+
155
  global $wpdb;
156
  $payments_table_name = $wpdb->prefix . "swpm_payments_tbl";
157
 
classes/class.simple-wp-membership.php CHANGED
@@ -3,6 +3,7 @@
3
  include_once('class.swpm-utils-misc.php');
4
  include_once('class.swpm-utils.php');
5
  include_once('class.swpm-utils-member.php');
 
6
  include_once('class.swpm-init-time-tasks.php');
7
  include_once('class.swpm-settings.php');
8
  include_once('class.swpm-protection.php');
@@ -242,13 +243,11 @@ class SimpleWpMembership {
242
  ob_start();
243
  $auth = SwpmAuth::get_instance();
244
  if ($auth->is_logged_in()) {
245
- include(SIMPLE_WP_MEMBERSHIP_PATH . 'views/loggedin.php');
 
246
  } else {
247
- $setting = SwpmSettings::get_instance();
248
- $password_reset_url = $setting->get_value('reset-page-url');
249
- $join_url = $setting->get_value('join-us-page-url');
250
-
251
- include(SIMPLE_WP_MEMBERSHIP_PATH . 'views/login.php');
252
  }
253
  return ob_get_clean();
254
  }
@@ -259,7 +258,8 @@ class SimpleWpMembership {
259
  return '';
260
  }
261
  ob_start();
262
- include(SIMPLE_WP_MEMBERSHIP_PATH . 'views/forgot_password.php');
 
263
  return ob_get_clean();
264
  }
265
 
@@ -412,13 +412,19 @@ class SimpleWpMembership {
412
  }
413
 
414
  public function filter_comment($content) {
 
 
 
 
 
415
  $acl = SwpmAccessControl::get_instance();
416
  global $comment;
417
- return $acl->filter_post($comment->comment_post_ID, $content);
418
  }
419
 
420
  public function filter_content($content) {
421
- if (is_preview()) {
 
422
  return $content;
423
  }
424
  $acl = SwpmAccessControl::get_instance();
3
  include_once('class.swpm-utils-misc.php');
4
  include_once('class.swpm-utils.php');
5
  include_once('class.swpm-utils-member.php');
6
+ include_once('class.swpm-utils-template.php');
7
  include_once('class.swpm-init-time-tasks.php');
8
  include_once('class.swpm-settings.php');
9
  include_once('class.swpm-protection.php');
243
  ob_start();
244
  $auth = SwpmAuth::get_instance();
245
  if ($auth->is_logged_in()) {
246
+ //Load the template for logged-in member
247
+ SwpmUtilsTemplate::swpm_load_template('loggedin.php', false);
248
  } else {
249
+ //Load the login widget template
250
+ SwpmUtilsTemplate::swpm_load_template('login.php', false);
 
 
 
251
  }
252
  return ob_get_clean();
253
  }
258
  return '';
259
  }
260
  ob_start();
261
+ //Load the forgot password template
262
+ SwpmUtilsTemplate::swpm_load_template('forgot_password.php', false);
263
  return ob_get_clean();
264
  }
265
 
412
  }
413
 
414
  public function filter_comment($content) {
415
+ if (is_admin()) {
416
+ //Do not apply filtering for admin side viewing
417
+ return $content;
418
+ }
419
+
420
  $acl = SwpmAccessControl::get_instance();
421
  global $comment;
422
+ return $acl->filter_comment($comment->comment_post_ID, $content);
423
  }
424
 
425
  public function filter_content($content) {
426
+ if (is_preview() || is_admin()) {
427
+ //Do not apply filtering for admin side viewing or preview page viewing.
428
  return $content;
429
  }
430
  $acl = SwpmAccessControl::get_instance();
classes/class.swpm-access-control.php CHANGED
@@ -70,8 +70,10 @@ class SwpmAccessControl {
70
  return $this->lastError;
71
  }
72
  public function filter_post($id,$content){
 
73
  if(in_array($id, $this->moretags)) {return $content; }
74
  if($this->can_i_read_post($id)) {return $content; }
 
75
  $moretag = SwpmSettings::get_instance()->get_value('enable-moretag');
76
  if (empty($moretag)){
77
  return $this->lastError;
@@ -88,17 +90,17 @@ class SwpmAccessControl {
88
  $error_msg = '<div class="swpm-margin-top-10">' . SwpmUtils::_("You need to login to view the rest of the content. ") . SwpmSettings::get_instance()->get_login_link() . '</div>';
89
  $this->lastError = apply_filters('swpm_not_logged_in_more_tag_msg', $error_msg);
90
  }
91
-
92
  return do_shortcode($post_segments[0]) . $this->lastError;
93
  }
94
 
95
  return $this->lastError;
96
  }
97
- public function filter_comment($id,$content){
98
- if($this->can_i_read_comment($id)) { return $content; }
99
  return $this->lastError;
100
  }
101
  public function filter_post_with_moretag($id, $more_link, $more_link_text){
 
102
  $this->moretags[] = $id;
103
  if($this->can_i_read_post($id)) {
104
  return $more_link;
70
  return $this->lastError;
71
  }
72
  public function filter_post($id,$content){
73
+ if(SwpmUtils::is_first_click_free($content)) {return $content;}
74
  if(in_array($id, $this->moretags)) {return $content; }
75
  if($this->can_i_read_post($id)) {return $content; }
76
+
77
  $moretag = SwpmSettings::get_instance()->get_value('enable-moretag');
78
  if (empty($moretag)){
79
  return $this->lastError;
90
  $error_msg = '<div class="swpm-margin-top-10">' . SwpmUtils::_("You need to login to view the rest of the content. ") . SwpmSettings::get_instance()->get_login_link() . '</div>';
91
  $this->lastError = apply_filters('swpm_not_logged_in_more_tag_msg', $error_msg);
92
  }
 
93
  return do_shortcode($post_segments[0]) . $this->lastError;
94
  }
95
 
96
  return $this->lastError;
97
  }
98
+ public function filter_comment($parent_post_id,$content){
99
+ if($this->can_i_read_post($parent_post_id)) { return $content; }
100
  return $this->lastError;
101
  }
102
  public function filter_post_with_moretag($id, $more_link, $more_link_text){
103
+ if (SwpmUtils::is_first_click_free($content)) {return $content;}
104
  $this->moretags[] = $id;
105
  if($this->can_i_read_post($id)) {
106
  return $more_link;
classes/class.swpm-auth.php CHANGED
@@ -170,6 +170,8 @@ class SwpmAuth {
170
  $expire = $expiration; //The minimum cookie expiration should be at least couple of days.
171
  }
172
 
 
 
173
  $expiration_timestamp = SwpmUtils::get_expiration_timestamp($this->userData);
174
  $enable_expired_login = SwpmSettings::get_instance()->get_value('enable-expired-account-login', '');
175
  // make sure cookie doesn't live beyond account expiration date.
170
  $expire = $expiration; //The minimum cookie expiration should be at least couple of days.
171
  }
172
 
173
+ setcookie("swpm_in_use", "swpm_in_use", $expire, COOKIEPATH, COOKIE_DOMAIN);
174
+
175
  $expiration_timestamp = SwpmUtils::get_expiration_timestamp($this->userData);
176
  $enable_expired_login = SwpmSettings::get_instance()->get_value('enable-expired-account-login', '');
177
  // make sure cookie doesn't live beyond account expiration date.
classes/class.swpm-category-list.php CHANGED
@@ -30,17 +30,16 @@ class SwpmCategoryList extends WP_List_Table {
30
  function get_columns() {
31
  return array(
32
  'cb' => '<input type="checkbox" />'
33
- , 'term_id' => SwpmUtils::_('ID')
34
- , 'name' => SwpmUtils::_('Name')
 
35
  , 'description' => SwpmUtils::_('Description')
36
  , 'count' => SwpmUtils::_('Count')
37
  );
38
  }
39
 
40
  function get_sortable_columns() {
41
- return array(
42
- 'name' => array('name', true)
43
- );
44
  }
45
 
46
  function column_default($item, $column_name) {
@@ -51,6 +50,16 @@ class SwpmCategoryList extends WP_List_Table {
51
  return $item->term_id;
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
54
  function column_cb($item) {
55
  return sprintf(
56
  '<input type="hidden" name="ids_in_page[]" value="%s">
@@ -83,10 +92,12 @@ class SwpmCategoryList extends WP_List_Table {
83
 
84
  function prepare_items() {
85
  $all_categories = array();
86
- $all_cat_ids = get_categories(array('hide_empty' => '0'));
87
- $totalitems = count($all_cat_ids);
 
 
88
  $perpage = 100;
89
- $paged = !empty($_GET["paged"]) ? esc_sql($_GET["paged"]) : '';
90
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
91
  $paged = 1;
92
  }
@@ -95,8 +106,8 @@ class SwpmCategoryList extends WP_List_Table {
95
  if (!empty($paged) && !empty($perpage)) {
96
  $offset = ($paged - 1) * $perpage;
97
  }
98
- for ($i = $offset; $i < ((int) $offset + (int) $perpage) && !empty($all_cat_ids[$i]); $i++) {
99
- $all_categories[] = $all_cat_ids[$i];
100
  }
101
  $this->set_pagination_args(array(
102
  "total_items" => $totalitems,
30
  function get_columns() {
31
  return array(
32
  'cb' => '<input type="checkbox" />'
33
+ , 'term_id' => SwpmUtils::_('Category ID')
34
+ , 'name' => SwpmUtils::_('Category Name')
35
+ , 'taxonomy' => SwpmUtils::_('Category Type (Taxonomy)')
36
  , 'description' => SwpmUtils::_('Description')
37
  , 'count' => SwpmUtils::_('Count')
38
  );
39
  }
40
 
41
  function get_sortable_columns() {
42
+ return array();
 
 
43
  }
44
 
45
  function column_default($item, $column_name) {
50
  return $item->term_id;
51
  }
52
 
53
+ function column_taxonomy($item) {
54
+ $taxonomy = $item->taxonomy;
55
+ if ($taxonomy == 'category'){
56
+ $taxonomy = 'Post Category';
57
+ } else {
58
+ $taxonomy = 'Custom Post Type ('.$taxonomy.')';
59
+ }
60
+ return $taxonomy;
61
+ }
62
+
63
  function column_cb($item) {
64
  return sprintf(
65
  '<input type="hidden" name="ids_in_page[]" value="%s">
92
 
93
  function prepare_items() {
94
  $all_categories = array();
95
+ $taxonomies = get_taxonomies($args = array('public' => true,'_builtin'=>false));
96
+ $taxonomies['category'] = 'category';
97
+ $all_terms = get_terms( $taxonomies, 'orderby=count&hide_empty=0&order=DESC');
98
+ $totalitems = count($all_terms);
99
  $perpage = 100;
100
+ $paged = !empty($_GET["paged"]) ? sanitize_text_field($_GET["paged"]) : '';
101
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
102
  $paged = 1;
103
  }
106
  if (!empty($paged) && !empty($perpage)) {
107
  $offset = ($paged - 1) * $perpage;
108
  }
109
+ for ($i = $offset; $i < ((int) $offset + (int) $perpage) && !empty($all_terms[$i]); $i++) {
110
+ $all_categories[] = $all_terms[$i];
111
  }
112
  $this->set_pagination_args(array(
113
  "total_items" => $totalitems,
classes/class.swpm-front-registration.php CHANGED
@@ -215,10 +215,9 @@ class SwpmFrontRegistration extends SwpmRegistration {
215
 
216
  $body = $settings->get_value('reset-mail-body');
217
  $subject = $settings->get_value('reset-mail-subject');
218
- $search = array('{user_name}', '{first_name}', '{last_name}', '{password}');
219
- $replace = array($user->user_name, $user->first_name, $user->last_name, $password);
220
  $body = html_entity_decode($body);
221
- $body = str_replace($search, $replace, $body);
 
222
  $from = $settings->get_value('email-from');
223
  $headers = "From: " . $from . "\r\n";
224
  wp_mail($email, $subject, $body, $headers);
215
 
216
  $body = $settings->get_value('reset-mail-body');
217
  $subject = $settings->get_value('reset-mail-subject');
 
 
218
  $body = html_entity_decode($body);
219
+ $additional_args = array('password' => $password);
220
+ $body = SwpmMiscUtils::replace_dynamic_tags($body, $user->member_id, $additional_args);
221
  $from = $settings->get_value('email-from');
222
  $headers = "From: " . $from . "\r\n";
223
  wp_mail($email, $subject, $body, $headers);
classes/class.swpm-init-time-tasks.php CHANGED
@@ -34,7 +34,8 @@ class SwpmInitTimeTasks {
34
  $swpm_logout = filter_input(INPUT_GET, 'swpm-logout');
35
  if (!empty($swpm_logout)) {
36
  SwpmAuth::get_instance()->logout();
37
- wp_redirect(home_url());
 
38
  exit(0);
39
  }
40
  $this->process_password_reset();
34
  $swpm_logout = filter_input(INPUT_GET, 'swpm-logout');
35
  if (!empty($swpm_logout)) {
36
  SwpmAuth::get_instance()->logout();
37
+ $home_url = home_url();
38
+ wp_redirect(trailingslashit($home_url));
39
  exit(0);
40
  }
41
  $this->process_password_reset();
classes/class.swpm-members.php CHANGED
@@ -135,7 +135,7 @@ class SwpmMembers extends WP_List_Table {
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) {
141
  $paged = 1;
135
  $totalitems = $wpdb->query($query); //return the total number of affected rows
136
 
137
  //Pagination setup
138
+ $perpage = apply_filters('swpm_members_menu_items_per_page', 50);
139
  $paged = filter_input(INPUT_GET, 'paged');
140
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
141
  $paged = 1;
classes/class.swpm-membership-levels.php CHANGED
@@ -86,8 +86,9 @@ class SwpmMembershipLevels extends WP_List_Table {
86
  $this->process_bulk_action();
87
 
88
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
89
- if (isset($_POST['s']))
90
- $query .= " AND alias LIKE '%" . strip_tags($_POST['s']) . "%' ";
 
91
  $orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
92
  $order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
93
 
@@ -100,8 +101,8 @@ class SwpmMembershipLevels extends WP_List_Table {
100
  }
101
 
102
  $totalitems = $wpdb->query($query); //return the total number of affected rows
103
- $perpage = 20;
104
- $paged = !empty($_GET["paged"]) ? esc_sql($_GET["paged"]) : '';
105
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
106
  $paged = 1;
107
  }
86
  $this->process_bulk_action();
87
 
88
  $query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
89
+ if (isset($_POST['s'])){
90
+ $query .= " AND alias LIKE '%" . sanitize_text_field($_POST['s']) . "%' ";
91
+ }
92
  $orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
93
  $order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
94
 
101
  }
102
 
103
  $totalitems = $wpdb->query($query); //return the total number of affected rows
104
+ $perpage = 50;
105
+ $paged = !empty($_GET["paged"]) ? sanitize_text_field($_GET["paged"]) : '';
106
  if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
107
  $paged = 1;
108
  }
classes/class.swpm-protection-base.php CHANGED
@@ -114,40 +114,58 @@ abstract class SwpmProtectionBase {
114
  }
115
 
116
  public function post_in_categories($post_id) {
117
- if (empty($this->categories))
 
 
 
 
 
 
118
  return false;
119
- return (/* ($this->bitmap&1)===1) && */ in_category((array) $this->categories, $post_id));
 
 
 
 
 
120
  }
121
 
122
  public function in_parent_categories($id) {
123
- if (empty($this->categories))
124
  return false;
125
- $parents = explode(',', get_category_parents($id, false, ','));
126
- $parents = array_unique($parents);
127
- foreach ($parents as $parent) {
128
- if (empty($parent))
129
- continue;
130
- if (/* (($this->bitmap&1)===1) && */(in_array($parent, (array) $this->categories)))
131
- return true;
 
 
 
 
 
132
  }
133
  return false;
134
  }
135
 
136
  public function post_in_parent_categories($post_id) {
137
- if (empty($this->categories))
138
  return false;
139
- $cats = get_the_category($post_id);
140
- $parents = array();
141
- foreach ($cats as $key => $cat) {
142
- $parents = array_merge($parents, explode(',', get_category_parents($cat->cat_ID, false, ',')));
143
  }
144
- $parents = array_unique($parents);
145
- foreach ($parents as $parent) {
146
- if (empty($parent))
147
- continue;
148
- if (/* (($this->bitmap&1)===1) && */(in_array(get_cat_ID($parent), (array) $this->categories)))
149
- return true;
 
 
 
 
 
150
  }
 
151
  return false;
152
  }
153
 
114
  }
115
 
116
  public function post_in_categories($post_id) {
117
+ if (empty($this->categories)){
118
+ return false;
119
+ }
120
+ $taxonomies = get_taxonomies($args = array('public' => true,'_builtin'=>false));
121
+ $taxonomies['category'] = 'category';
122
+ $terms = wp_get_post_terms( $post_id, $taxonomies, array('fields'=>'ids'));
123
+ if(!is_array($terms)){
124
  return false;
125
+ }
126
+
127
+ foreach ($terms as $key=>$value){
128
+ if (in_array($value, $this->categories)) {return true;}
129
+ }
130
+ return false;
131
  }
132
 
133
  public function in_parent_categories($id) {
134
+ if (empty($this->categories)){
135
  return false;
136
+ }
137
+ $taxonomies = get_taxonomies($args = array('public' => true,'_builtin'=>false));
138
+ $taxonomies['category'] = 'category';
139
+ $terms = get_term($id, $taxonomies);
140
+ if(!is_array($terms)){
141
+ return false;
142
+ }
143
+
144
+ foreach ($terms as $term){
145
+ if ($term->parent == 0) {continue;}
146
+
147
+ if (in_array($term->parent, $this->categories)) {return true;}
148
  }
149
  return false;
150
  }
151
 
152
  public function post_in_parent_categories($post_id) {
153
+ if (empty($this->categories)){
154
  return false;
 
 
 
 
155
  }
156
+ $taxonomies = get_taxonomies($args = array('public' => true,'_builtin'=>false));
157
+ $taxonomies['category'] = 'category';
158
+ $terms = wp_get_post_terms( $post_id, $taxonomies, array('fields'=>'all'));
159
+ if(!is_array($terms)){
160
+ return false;
161
+ }
162
+
163
+ foreach ($terms as $term){
164
+ if ($term->parent != 0 &&in_array($term->parent, $this->categories)) {
165
+ return true;
166
+ }
167
  }
168
+
169
  return false;
170
  }
171
 
classes/class.swpm-registration.php CHANGED
@@ -30,6 +30,11 @@ abstract class SwpmRegistration {
30
  $keys = array_map('swpm_enclose_var', array_keys($member_info));
31
  $body = html_entity_decode($body);
32
  $body = str_replace($keys, $values, $body);
 
 
 
 
 
33
  $email = sanitize_email(filter_input(INPUT_POST, 'email', FILTER_UNSAFE_RAW));
34
 
35
  wp_mail(trim($email), $subject, $body, $headers);
30
  $keys = array_map('swpm_enclose_var', array_keys($member_info));
31
  $body = html_entity_decode($body);
32
  $body = str_replace($keys, $values, $body);
33
+
34
+ $swpm_user = SwpmMemberUtils::get_user_by_user_name($member_info['user_name']);
35
+ $member_id = $swpm_user->member_id;
36
+ $body = SwpmMiscUtils::replace_dynamic_tags($body, $member_id);//Do the standard merge var replacement.
37
+
38
  $email = sanitize_email(filter_input(INPUT_POST, 'email', FILTER_UNSAFE_RAW));
39
 
40
  wp_mail(trim($email), $subject, $body, $headers);
classes/class.swpm-settings.php CHANGED
@@ -311,6 +311,8 @@ class SwpmSettings {
311
  $output['reset-page-url'] = esc_url($input['reset-page-url']);
312
  $output['join-us-page-url'] = esc_url($input['join-us-page-url']);
313
  $output['default-account-status'] = esc_attr($input['default-account-status']);
 
 
314
  return $output;
315
  }
316
 
311
  $output['reset-page-url'] = esc_url($input['reset-page-url']);
312
  $output['join-us-page-url'] = esc_url($input['join-us-page-url']);
313
  $output['default-account-status'] = esc_attr($input['default-account-status']);
314
+ $output['delete-pending-account'] = isset($input['delete-pending-account']) ? esc_attr($input['delete-pending-account']) : 0;
315
+
316
  return $output;
317
  }
318
 
classes/class.swpm-utils-misc.php CHANGED
@@ -176,4 +176,31 @@ class SwpmMiscUtils {
176
  return $pageURL;
177
  }
178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  }
176
  return $pageURL;
177
  }
178
 
179
+ public static function replace_dynamic_tags($msg_body, $member_id, $additional_args='') {
180
+ $settings = SwpmSettings::get_instance();
181
+ $user_record = SwpmMemberUtils::get_user_by_id($member_id);
182
+
183
+ $password = '';
184
+ $reg_link = '';
185
+ if (!empty($additional_args)) {
186
+ $password = isset($additional_args['password']) ? $additional_args['password'] : $password;
187
+ $reg_link = isset($additional_args['reg_link']) ? $additional_args['reg_link'] : $reg_link;
188
+ }
189
+ $login_link = $settings->get_value('login-page-url');
190
+
191
+ //Define the replacable tags
192
+ $tags = array("{member_id}", "{user_name}", "{first_name}", "{last_name}", "{membership_level}",
193
+ "{account_state}", "{email}", "{phone}", "{member_since}", "{subscription_starts}", "{company_name}",
194
+ "{password}", "{login_link}", "{reg_link}"
195
+ );
196
+
197
+ //Define the values
198
+ $vals = array($member_id, $user_record->user_name, $user_record->first_name, $user_record->last_name, $user_record->membership_level,
199
+ $user_record->account_state, $user_record->email, $user_record->phone, $user_record->member_since, $user_record->subscription_starts, $user_record->company_name,
200
+ $password, $login_link, $reg_link
201
+ );
202
+
203
+ $msg_body = str_replace($tags, $vals, $msg_body);
204
+ return $msg_body;
205
+ }
206
  }
classes/class.swpm-utils-template.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SwpmUtilsTemplate {
4
+
5
+ /*
6
+ * This function will load the template file in the following order
7
+ * wp-content/themes/your-child-theme/simple-membership/template-name.php
8
+ * wp-content/themes/your-main-theme/simple-membership/template-name.php
9
+ * The standard plugin's template file
10
+ */
11
+ public static function swpm_load_template($template_name, $require_once = true) {
12
+
13
+ //List of file paths (in order of priority) where the plugin should check for the template.
14
+ $template_files = array(
15
+ get_stylesheet_directory() . '/' . SIMPLE_WP_MEMBERSHIP_TEMPLATE_PATH . '/' . $template_name, //First check inside child theme (if you are using a child theme)
16
+ get_template_directory() . '/' . SIMPLE_WP_MEMBERSHIP_TEMPLATE_PATH . '/' . $template_name, //Then check inside the main theme folder
17
+ SIMPLE_WP_MEMBERSHIP_PATH . 'views/' . $template_name //Otherwise load the standard template
18
+ );
19
+
20
+ //Filter hook to allow overriding of the template file path
21
+ $template_files = apply_filters( 'swpm_load_template_files', $template_files, $template_name);
22
+
23
+ foreach ($template_files as $file) {
24
+ if (file_exists($file)) {
25
+ $template_to_load = $file;
26
+ break;
27
+ }
28
+ }
29
+
30
+ //Lets load this template
31
+ if ($template_to_load) {
32
+ if ($require_once) {
33
+ require_once( $template_to_load );
34
+ } else {
35
+ require( $template_to_load );
36
+ }
37
+ } else {
38
+ wp_die(SwpmUtils::_('Error! Failed to find a template path for the specified template: ' . $template_name));
39
+ }
40
+ }
41
+
42
+ }
classes/class.swpm-utils.php CHANGED
@@ -432,5 +432,12 @@ abstract class SwpmUtils {
432
 
433
  return apply_filters('swpm_get_user_ip_address', $user_ip);
434
  }
435
-
 
 
 
 
 
 
 
436
  }
432
 
433
  return apply_filters('swpm_get_user_ip_address', $user_ip);
434
  }
435
+
436
+ public static function is_first_click_free(&$content){
437
+ $is_first_click = false;
438
+ $args = array($is_first_click, $content );
439
+ $filtered = apply_filters('swpm_first_click_free', $args);
440
+ list($is_first_click, $content) = $filtered;
441
+ return $is_first_click;
442
+ }
443
  }
images/addons/google-first-click-free-addon.png ADDED
Binary file
images/addons/show-member-info.png ADDED
Binary file
ipn/swpm_handle_pp_ipn.php CHANGED
@@ -138,16 +138,17 @@ class swpm_paypal_ipn_handler {
138
  $cart_item_data_quantity = $current_cart_item['quantity'];
139
  $cart_item_data_total = $current_cart_item['mc_gross'];
140
  $cart_item_data_currency = $current_cart_item['mc_currency'];
141
- if(empty($cart_item_data_quantity))
142
- {
143
- $cart_item_data_quantity = 1;
144
- }
145
  $this->debug_log('Item Number: '.$cart_item_data_num,true);
146
  $this->debug_log('Item Name: '.$cart_item_data_name,true);
147
  $this->debug_log('Item Quantity: '.$cart_item_data_quantity,true);
148
  $this->debug_log('Item Total: '.$cart_item_data_total,true);
149
  $this->debug_log('Item Currency: '.$cart_item_data_currency,true);
150
 
 
 
151
 
152
  //*** Handle Membership Payment ***
153
  //--------------------------------------------------------------------------------------
138
  $cart_item_data_quantity = $current_cart_item['quantity'];
139
  $cart_item_data_total = $current_cart_item['mc_gross'];
140
  $cart_item_data_currency = $current_cart_item['mc_currency'];
141
+ if(empty($cart_item_data_quantity)){
142
+ $cart_item_data_quantity = 1;
143
+ }
 
144
  $this->debug_log('Item Number: '.$cart_item_data_num,true);
145
  $this->debug_log('Item Name: '.$cart_item_data_name,true);
146
  $this->debug_log('Item Quantity: '.$cart_item_data_quantity,true);
147
  $this->debug_log('Item Total: '.$cart_item_data_total,true);
148
  $this->debug_log('Item Currency: '.$cart_item_data_currency,true);
149
 
150
+ //Get the button id
151
+ $button_id = $cart_item_data_num;//Button id is the item number.
152
 
153
  //*** Handle Membership Payment ***
154
  //--------------------------------------------------------------------------------------
ipn/swpm_handle_subsc_ipn.php CHANGED
@@ -63,11 +63,9 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
63
  $body = "Your account has been upgraded successfully";
64
  }
65
  $from_address = $settings->get_value('email-from');
66
- $login_link = $settings->get_value('login-page-url');
67
-
68
- $tags1 = array("{first_name}", "{last_name}", "{user_name}", "{login_link}");
69
- $vals1 = array($resultset->first_name, $resultset->last_name, $resultset->user_name, $login_link);
70
- $email_body = str_replace($tags1, $vals1, $body);
71
  $headers = 'From: ' . $from_address . "\r\n";
72
  }// End of existing user account upgrade
73
  else {
@@ -128,11 +126,10 @@ function swpm_handle_subsc_signup_stand_alone($ipn_data, $subsc_ref, $unique_ref
128
  $body = "Please use the following link to complete your registration. \n {reg_link}";
129
  }
130
  $from_address = $settings->get_value('email-from');
131
-
132
- $tags = array("{first_name}", "{last_name}", "{reg_link}");
133
- $vals = array($data['first_name'], $data['last_name'], $reg_url);
134
  $body = html_entity_decode($body);
135
- $email_body = str_replace($tags, $vals, $body);
 
 
136
  $headers = 'From: ' . $from_address . "\r\n";
137
  }
138
 
63
  $body = "Your account has been upgraded successfully";
64
  }
65
  $from_address = $settings->get_value('email-from');
66
+
67
+ $additional_args = array();
68
+ $email_body = SwpmMiscUtils::replace_dynamic_tags($body, $swpm_id, $additional_args);
 
 
69
  $headers = 'From: ' . $from_address . "\r\n";
70
  }// End of existing user account upgrade
71
  else {
126
  $body = "Please use the following link to complete your registration. \n {reg_link}";
127
  }
128
  $from_address = $settings->get_value('email-from');
 
 
 
129
  $body = html_entity_decode($body);
130
+
131
+ $additional_args = array('reg_link' => $reg_url);
132
+ $email_body = SwpmMiscUtils::replace_dynamic_tags($body, $id, $additional_args);
133
  $headers = 'From: ' . $from_address . "\r\n";
134
  }
135
 
languages/swpm-ca_ES.mo ADDED
Binary file
languages/swpm-ca_ES.po ADDED
@@ -0,0 +1,1324 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Simple Membership\n"
4
+ "POT-Creation-Date: 2015-10-20 18:32+0200\n"
5
+ "PO-Revision-Date: 2015-10-20 20:29+0200\n"
6
+ "Language-Team: \n"
7
+ "MIME-Version: 1.0\n"
8
+ "Content-Type: text/plain; charset=UTF-8\n"
9
+ "Content-Transfer-Encoding: 8bit\n"
10
+ "X-Generator: Poedit 1.8.5\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: ca_ES\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+
18
+ #: classes/class.simple-wp-membership.php:263
19
+ msgid "You are not logged in."
20
+ msgstr "No esteu connectat."
21
+
22
+ #: classes/class.simple-wp-membership.php:297
23
+ msgid "Simple WP Membership Protection"
24
+ msgstr "Protecció Simple per Usuaris de WP"
25
+
26
+ #: classes/class.simple-wp-membership.php:309
27
+ msgid "Simple Membership Protection options"
28
+ msgstr "Opcions simples de pertinença i protecció"
29
+
30
+ #: classes/class.simple-wp-membership.php:325
31
+ msgid "Do you want to protect this content?"
32
+ msgstr "Voleu protegir aquest contingut?"
33
+
34
+ #: classes/class.simple-wp-membership.php:330
35
+ msgid "Select the membership level that can access this content:"
36
+ msgstr ""
37
+ "Seleccioneu el nivell de pertinença que pot accedir a aquest contingut:"
38
+
39
+ #: classes/class.simple-wp-membership.php:463
40
+ msgid "WP Membership"
41
+ msgstr "Membres de WP"
42
+
43
+ #: classes/class.simple-wp-membership.php:464 classes/class.swpm-members.php:10
44
+ #: views/admin_members_menu.php:2
45
+ msgid "Members"
46
+ msgstr "Membres"
47
+
48
+ #: classes/class.simple-wp-membership.php:465
49
+ #: classes/class.swpm-category-list.php:20
50
+ #: classes/class.swpm-membership-levels.php:11
51
+ msgid "Membership Levels"
52
+ msgstr "Nivells"
53
+
54
+ #: classes/class.simple-wp-membership.php:466
55
+ msgid "Settings"
56
+ msgstr "Ajustos"
57
+
58
+ #: classes/class.simple-wp-membership.php:467
59
+ msgid "Payments"
60
+ msgstr "Pagaments"
61
+
62
+ #: classes/class.simple-wp-membership.php:468
63
+ msgid "Add-ons"
64
+ msgstr "Afegits"
65
+
66
+ #: classes/class.swpm-access-control.php:21
67
+ #: classes/class.swpm-access-control.php:28
68
+ #: classes/class.swpm-access-control.php:55
69
+ msgid "You need to login to view this content. "
70
+ msgstr "Has d’identificar-te per poder veure aquest contingut."
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
+ "El teu compte ha caducat. Si et plau renova el teu compte per poder "
79
+ "continuar accedint a aquest contingut."
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 ""
84
+ "Aquest contingut només pot ser visualitzat per membres que s’han identificat "
85
+ "prèviament"
86
+
87
+ #: classes/class.swpm-access-control.php:46
88
+ #: classes/class.swpm-access-control.php:66
89
+ msgid "This content is not permitted for your membership level."
90
+ msgstr "Aquest contingut no és accessible amb el seu nivell d’accés."
91
+
92
+ #: classes/class.swpm-access-control.php:84
93
+ msgid " The rest of the content is not permitted for your membership level."
94
+ msgstr ""
95
+ "La resta d’aquest contingut no és accessible amb el seu nivell d’accés."
96
+
97
+ #: classes/class.swpm-access-control.php:88
98
+ #: classes/class.swpm-access-control.php:106
99
+ msgid "You need to login to view the rest of the content. "
100
+ msgstr "Has d’identificar-te per poder veure la resta d’aquest contingut"
101
+
102
+ #: classes/class.swpm-admin-registration.php:54
103
+ msgid "Member record added successfully."
104
+ msgstr "Registre d’usuari efectuat amb èxit."
105
+
106
+ #: classes/class.swpm-admin-registration.php:59
107
+ #: classes/class.swpm-admin-registration.php:100
108
+ #: classes/class.swpm-membership-level.php:43
109
+ #: classes/class.swpm-membership-level.php:62
110
+ msgid "Please correct the following:"
111
+ msgstr "Si us plau corregiu el següent:"
112
+
113
+ #: classes/class.swpm-admin-registration.php:91
114
+ msgid "Your current password"
115
+ msgstr "La teva contrasenya actual"
116
+
117
+ #: classes/class.swpm-ajax.php:14
118
+ msgid "Invalid Email Address"
119
+ msgstr "Adreça de correu incorrecta"
120
+
121
+ #: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:32
122
+ msgid "Aready taken"
123
+ msgstr "Ja està agafat"
124
+
125
+ #: classes/class.swpm-ajax.php:33
126
+ msgid "Available"
127
+ msgstr "Disponible"
128
+
129
+ #: classes/class.swpm-auth.php:50
130
+ msgid "User Not Found."
131
+ msgstr "Usuari no trobat."
132
+
133
+ #: classes/class.swpm-auth.php:57
134
+ msgid "Password Empty or Invalid."
135
+ msgstr "Contrasenya en blanc o incorrecta."
136
+
137
+ #: classes/class.swpm-auth.php:82
138
+ msgid "Account is inactive."
139
+ msgstr "El compte és inactiu"
140
+
141
+ #: classes/class.swpm-auth.php:85
142
+ msgid "Account is pending."
143
+ msgstr "El compte està en tràmit."
144
+
145
+ #: classes/class.swpm-auth.php:88 classes/class.swpm-auth.php:106
146
+ msgid "Account has expired."
147
+ msgstr "El compte ha caducat."
148
+
149
+ #: classes/class.swpm-auth.php:114
150
+ msgid "You are logged in as:"
151
+ msgstr "Has connectat com:"
152
+
153
+ #: classes/class.swpm-auth.php:160
154
+ msgid "Logged Out Successfully."
155
+ msgstr "S’ha desconnectat correctament. "
156
+
157
+ #: classes/class.swpm-auth.php:210
158
+ msgid "Session Expired."
159
+ msgstr "La sessió ha finalitzat."
160
+
161
+ #: classes/class.swpm-auth.php:219
162
+ msgid "Invalid User Name"
163
+ msgstr "Nom no vàlid"
164
+
165
+ #: classes/class.swpm-auth.php:227
166
+ msgid "Please login again."
167
+ msgstr "Si us plau torneu a connectar."
168
+
169
+ #: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:23
170
+ #: classes/class.swpm-membership-levels.php:10
171
+ #: classes/class.swpm-membership-levels.php:20
172
+ #: classes/admin-includes/class.swpm-payments-list-table.php:53
173
+ #: views/add.php:30 views/admin_member_form_common_part.php:2 views/edit.php:52
174
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:36
175
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:217
176
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:37
177
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:310
178
+ msgid "Membership Level"
179
+ msgstr "Nivell de seguretat"
180
+
181
+ #: classes/class.swpm-category-list.php:33 classes/class.swpm-members.php:18
182
+ #: classes/class.swpm-membership-levels.php:19
183
+ msgid "ID"
184
+ msgstr "ID"
185
+
186
+ #: classes/class.swpm-category-list.php:34
187
+ msgid "Name"
188
+ msgstr "Nom"
189
+
190
+ #: classes/class.swpm-category-list.php:35
191
+ msgid "Description"
192
+ msgstr "Descripció"
193
+
194
+ #: classes/class.swpm-category-list.php:36
195
+ msgid "Count"
196
+ msgstr "Compte"
197
+
198
+ #: classes/class.swpm-category-list.php:80
199
+ msgid "Category protection updated!"
200
+ msgstr "Categoria de protecció actualitzada!"
201
+
202
+ #: classes/class.swpm-form.php:26
203
+ msgid ""
204
+ "Wordpress account exists with given user name. But given email doesn't match."
205
+ msgstr "Existeix un usuari amb aquest usuari, però el correu no coincideix."
206
+
207
+ #: classes/class.swpm-form.php:31
208
+ msgid ""
209
+ "Wordpress account exists with given email. But given user name doesn't match."
210
+ msgstr ""
211
+ "Existeix un compte amb aquest correu, però el nom d’usuari no coincideix."
212
+
213
+ #: classes/class.swpm-form.php:40
214
+ msgid "User name is required"
215
+ msgstr "Cal un nom d’usuari"
216
+
217
+ #: classes/class.swpm-form.php:44
218
+ msgid "User name contains invalid character"
219
+ msgstr "El nom d’usuari conté caràcters no vàlids"
220
+
221
+ #: classes/class.swpm-form.php:52
222
+ msgid "User name already exists."
223
+ msgstr "Ja existeix aquest nom d’usuari."
224
+
225
+ #: classes/class.swpm-form.php:75
226
+ msgid "Password is required"
227
+ msgstr "Cal una contrasenya"
228
+
229
+ #: classes/class.swpm-form.php:82
230
+ msgid "Password mismatch"
231
+ msgstr "La contrasenya és incorrecta"
232
+
233
+ #: classes/class.swpm-form.php:93
234
+ msgid "Email is required"
235
+ msgstr "Cal escriure un correu"
236
+
237
+ #: classes/class.swpm-form.php:97
238
+ msgid "Email is invalid"
239
+ msgstr "El còrreu no és vàlid"
240
+
241
+ #: classes/class.swpm-form.php:113
242
+ msgid "Email is already used."
243
+ msgstr "Aquest correu ja es fa servir."
244
+
245
+ #: classes/class.swpm-form.php:170
246
+ msgid "Member since field is invalid"
247
+ msgstr "Camp de membre no vàlid"
248
+
249
+ #: classes/class.swpm-form.php:181
250
+ msgid "Access starts field is invalid"
251
+ msgstr "El camp d’accés és no vàlid "
252
+
253
+ #: classes/class.swpm-form.php:191
254
+ msgid "Gender field is invalid"
255
+ msgstr "Camp de gènere no vàlid"
256
+
257
+ #: classes/class.swpm-form.php:202
258
+ msgid "Account state field is invalid"
259
+ msgstr "Camp d’estat no vàlid"
260
+
261
+ #: classes/class.swpm-form.php:209
262
+ msgid "Invalid membership level"
263
+ msgstr "Nivell d’accés no vàlid"
264
+
265
+ #: classes/class.swpm-front-registration.php:71
266
+ msgid "Security check: captcha validation failed."
267
+ msgstr "La validació ha fallat. "
268
+
269
+ #: classes/class.swpm-front-registration.php:80
270
+ msgid "Registration Successful. "
271
+ msgstr "Registre realitzat amb correctament."
272
+
273
+ #: classes/class.swpm-front-registration.php:80
274
+ #: classes/class.swpm-settings.php:377
275
+ msgid "Please"
276
+ msgstr "Per favor"
277
+
278
+ #: classes/class.swpm-front-registration.php:80
279
+ #: classes/class.swpm-settings.php:377 views/login.php:21
280
+ msgid "Login"
281
+ msgstr "Entra"
282
+
283
+ #: classes/class.swpm-front-registration.php:92
284
+ #: classes/class.swpm-front-registration.php:179
285
+ msgid "Please correct the following"
286
+ msgstr "Si us plau corregiu el següent"
287
+
288
+ #: classes/class.swpm-front-registration.php:123
289
+ msgid "Membership Level Couldn't be found."
290
+ msgstr "Nivell de seguretat no trobat"
291
+
292
+ #: classes/class.swpm-front-registration.php:162
293
+ msgid "Profile updated successfully."
294
+ msgstr "Perfil actualitzat amb èxit."
295
+
296
+ #: classes/class.swpm-front-registration.php:170
297
+ msgid ""
298
+ "Profile updated successfully. You will need to re-login since you changed "
299
+ "your password."
300
+ msgstr "Perfil actualitzat amb èxit. Cal reiniciar."
301
+
302
+ #: classes/class.swpm-front-registration.php:189
303
+ msgid "Email address not valid."
304
+ msgstr "Correu incorrecte."
305
+
306
+ #: classes/class.swpm-front-registration.php:200
307
+ msgid "No user found with that email address."
308
+ msgstr "No hi ha cap usuari amb aquest correu."
309
+
310
+ #: classes/class.swpm-front-registration.php:201
311
+ #: classes/class.swpm-front-registration.php:224
312
+ msgid "Email Address: "
313
+ msgstr "Adreça de correu:"
314
+
315
+ #: classes/class.swpm-front-registration.php:223
316
+ msgid "New password has been sent to your email address."
317
+ msgstr "Hem tramés una nova contrasenya al seu correu."
318
+
319
+ #: classes/class.swpm-init-time-tasks.php:108
320
+ msgid "Sorry, Nonce verification failed."
321
+ msgstr "Perdò, ha fallat la verificació."
322
+
323
+ #: classes/class.swpm-init-time-tasks.php:115
324
+ msgid "Sorry, Password didn't match."
325
+ msgstr "Perdò, la contrasenya és incorrecta."
326
+
327
+ #: classes/class.swpm-level-form.php:47
328
+ msgid "Date format is not valid."
329
+ msgstr "Format de data incorrecte."
330
+
331
+ #: classes/class.swpm-level-form.php:55
332
+ msgid "Access duration must be > 0."
333
+ msgstr "La duració ha de ser > 0."
334
+
335
+ #: classes/class.swpm-member-utils.php:22
336
+ #: classes/class.swpm-member-utils.php:30
337
+ #: classes/class.swpm-member-utils.php:38
338
+ #: classes/class.swpm-member-utils.php:48
339
+ msgid "User is not logged in."
340
+ msgstr "L’usuari no està connectat."
341
+
342
+ #: classes/class.swpm-members.php:9
343
+ msgid "Member"
344
+ msgstr "Membre"
345
+
346
+ #: classes/class.swpm-members.php:19 views/add.php:6 views/edit.php:4
347
+ msgid "User Name"
348
+ msgstr "Nom d’usuari"
349
+
350
+ #: classes/class.swpm-members.php:20
351
+ #: classes/admin-includes/class.swpm-payments-list-table.php:48
352
+ #: views/add.php:22 views/admin_member_form_common_part.php:15
353
+ #: views/edit.php:20
354
+ msgid "First Name"
355
+ msgstr "Nom"
356
+
357
+ #: classes/class.swpm-members.php:21
358
+ #: classes/admin-includes/class.swpm-payments-list-table.php:49
359
+ #: views/add.php:26 views/admin_member_form_common_part.php:19
360
+ #: views/edit.php:24
361
+ msgid "Last Name"
362
+ msgstr "Cognoms"
363
+
364
+ #: classes/class.swpm-members.php:22 views/add.php:10 views/edit.php:8
365
+ msgid "Email"
366
+ msgstr "Correu"
367
+
368
+ #: classes/class.swpm-members.php:24 views/admin_member_form_common_part.php:11
369
+ msgid "Access Starts"
370
+ msgstr "Inici de l’accés"
371
+
372
+ #: classes/class.swpm-members.php:25
373
+ msgid "Account State"
374
+ msgstr "Estat del compte"
375
+
376
+ #: classes/class.swpm-members.php:38
377
+ #: classes/class.swpm-membership-levels.php:35
378
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:80
379
+ #: classes/admin-includes/class.swpm-payments-list-table.php:68
380
+ msgid "Delete"
381
+ msgstr "Esborrar"
382
+
383
+ #: classes/class.swpm-members.php:112
384
+ msgid "No Member found."
385
+ msgstr "No es troba el membre."
386
+
387
+ #: classes/class.swpm-membership-level.php:38
388
+ msgid "Membership Level Creation Successful."
389
+ msgstr "Nivell creat correctament."
390
+
391
+ #: classes/class.swpm-membership-level.php:57
392
+ msgid "Updated Successfully."
393
+ msgstr "Actualització correcta."
394
+
395
+ #: classes/class.swpm-membership-levels.php:21
396
+ msgid "Role"
397
+ msgstr "Rol"
398
+
399
+ #: classes/class.swpm-membership-levels.php:22
400
+ msgid "Access Valid For/Until"
401
+ msgstr "Accés vàlid fins"
402
+
403
+ #: classes/class.swpm-misc-utils.php:50
404
+ msgid "Registration"
405
+ msgstr "Registre"
406
+
407
+ #: classes/class.swpm-misc-utils.php:73
408
+ msgid "Member Login"
409
+ msgstr "Entrada Membres"
410
+
411
+ #: classes/class.swpm-misc-utils.php:96
412
+ msgid "Profile"
413
+ msgstr "Perfil"
414
+
415
+ #: classes/class.swpm-misc-utils.php:119
416
+ msgid "Password Reset"
417
+ msgstr "Canviar Contrasenya"
418
+
419
+ #: classes/class.swpm-settings.php:21 classes/class.swpm-settings.php:39
420
+ msgid "General Settings"
421
+ msgstr "Paràmetres generals"
422
+
423
+ #: classes/class.swpm-settings.php:21
424
+ msgid "Payment Settings"
425
+ msgstr "Paràmetres de Pagament"
426
+
427
+ #: classes/class.swpm-settings.php:22
428
+ msgid "Email Settings"
429
+ msgstr "Paràmetres del correu"
430
+
431
+ #: classes/class.swpm-settings.php:22
432
+ msgid "Tools"
433
+ msgstr "Eines"
434
+
435
+ #: classes/class.swpm-settings.php:22 classes/class.swpm-settings.php:150
436
+ msgid "Advanced Settings"
437
+ msgstr "Paràmetres Avançats"
438
+
439
+ #: classes/class.swpm-settings.php:22
440
+ msgid "Addons Settings"
441
+ msgstr "Paràmetres Extres"
442
+
443
+ #: classes/class.swpm-settings.php:38
444
+ msgid "Plugin Documentation"
445
+ msgstr "Documentació del afegit"
446
+
447
+ #: classes/class.swpm-settings.php:40
448
+ msgid "Enable Free Membership"
449
+ msgstr "Permetre membres gratuits"
450
+
451
+ #: classes/class.swpm-settings.php:41
452
+ msgid ""
453
+ "Enable/disable registration for free membership level. When you enable this "
454
+ "option, make sure to specify a free membership level ID in the field below."
455
+ msgstr ""
456
+ "Activa/Desactiva el registre de membres gratuits. Quan actives aquesta opció "
457
+ "cal estar segur d’especificar l’identificador del nivell gratuit en el camp "
458
+ "inferior."
459
+
460
+ #: classes/class.swpm-settings.php:42
461
+ msgid "Free Membership Level ID"
462
+ msgstr "Identificador dels membres gratuits."
463
+
464
+ #: classes/class.swpm-settings.php:43
465
+ msgid "Assign free membership level ID"
466
+ msgstr "Assignar l’identificador dels membres gratuits"
467
+
468
+ #: classes/class.swpm-settings.php:44
469
+ msgid "Enable More Tag Protection"
470
+ msgstr "Activar protecció d’etiquetes"
471
+
472
+ #: classes/class.swpm-settings.php:45
473
+ msgid ""
474
+ "Enables or disables \"more\" tag protection in the posts and pages. Anything "
475
+ "after the More tag is protected. Anything before the more tag is teaser "
476
+ "content."
477
+ msgstr ""
478
+ "Activa o desactiva el la protecció addicional d'etiquetes a les entrades i "
479
+ "pàgines. Qualsevol cosa després de l'etiqueta Més està protegida. Qualsevol "
480
+ "cosa abans de l'etiqueta és més contingut de sumari."
481
+
482
+ #: classes/class.swpm-settings.php:46
483
+ msgid "Hide Adminbar"
484
+ msgstr "Amagar barra d’administració"
485
+
486
+ #: classes/class.swpm-settings.php:47
487
+ msgid ""
488
+ "WordPress shows an admin toolbar to the logged in users of the site. Check "
489
+ "this box if you want to hide that admin toolbar in the fronend of your site."
490
+ msgstr ""
491
+ "WordPress mostra una barra d'eines d'administració per a la els usuaris "
492
+ "registrats del lloc. Marqueu aquesta casella si voleu amagar aquesta barra "
493
+ "d'eines d'administració en el fronend del seu lloc."
494
+
495
+ #: classes/class.swpm-settings.php:49
496
+ msgid "Default Account Status"
497
+ msgstr "Status per defecte del compte"
498
+
499
+ #: classes/class.swpm-settings.php:52
500
+ msgid ""
501
+ "Select the default account status for newly registered users. If you want to "
502
+ "manually approve the members then you can set the status to \"Pending\"."
503
+ msgstr ""
504
+ "Seleccioneu l'estat del compte per defecte per als usuaris recentment "
505
+ "registrats. Si desitja aprovar manualment els membres llavors es pot "
506
+ "establir l'estat a \"Pendent\"."
507
+
508
+ #: classes/class.swpm-settings.php:53
509
+ msgid "Allow Account Deletion"
510
+ msgstr "Permetre esborrar comptes"
511
+
512
+ #: classes/class.swpm-settings.php:55
513
+ msgid "Allow users to delete their accounts."
514
+ msgstr "Permetre als usuaris esborrar el seu compte."
515
+
516
+ #: classes/class.swpm-settings.php:56
517
+ msgid "Auto Delete Pending Account"
518
+ msgstr "Autoesborrat de comptes pendents"
519
+
520
+ #: classes/class.swpm-settings.php:59
521
+ msgid "Select how long you want to keep \"pending\" account."
522
+ msgstr "Seleccioneu quant temps voleu mantenir \"pendent\" un compte."
523
+
524
+ #: classes/class.swpm-settings.php:67
525
+ msgid "Pages Settings"
526
+ msgstr "Configuració de les pàgines"
527
+
528
+ #: classes/class.swpm-settings.php:68
529
+ msgid "Login Page URL"
530
+ msgstr "URL de la pàgina d’entrada"
531
+
532
+ #: classes/class.swpm-settings.php:70
533
+ msgid "Registration Page URL"
534
+ msgstr "URL de la pàgina de registre"
535
+
536
+ #: classes/class.swpm-settings.php:72
537
+ msgid "Join Us Page URL"
538
+ msgstr "URL de la pàgina de uneix-te"
539
+
540
+ #: classes/class.swpm-settings.php:74
541
+ msgid "Edit Profile Page URL"
542
+ msgstr "URL de la pàgina d’edició del perfil"
543
+
544
+ #: classes/class.swpm-settings.php:76
545
+ msgid "Password Reset Page URL"
546
+ msgstr "URL de la pàgina de canviar la contrasenya"
547
+
548
+ #: classes/class.swpm-settings.php:79
549
+ msgid "Test & Debug Settings"
550
+ msgstr "Configuració de Test i depuració"
551
+
552
+ #: classes/class.swpm-settings.php:81
553
+ msgid "Check this option to enable debug logging."
554
+ msgstr "Marqueu aquesta opció per activar el registre de depuració."
555
+
556
+ #: classes/class.swpm-settings.php:86
557
+ msgid "Enable Sandbox Testing"
558
+ msgstr "Permetre test de proves"
559
+
560
+ #: classes/class.swpm-settings.php:87
561
+ msgid "Enable this option if you want to do sandbox payment testing."
562
+ msgstr "Habiliteu aquesta opció si vostè vol fer la prova de pagament simulat."
563
+
564
+ #: classes/class.swpm-settings.php:97 classes/class.swpm-settings.php:145
565
+ #: classes/class.swpm-settings.php:243
566
+ msgid "Settings updated!"
567
+ msgstr "Configuració actualitzada!"
568
+
569
+ #: classes/class.swpm-settings.php:102
570
+ msgid "Email Misc. Settings"
571
+ msgstr "Paràmetres del correu"
572
+
573
+ #: classes/class.swpm-settings.php:103
574
+ msgid "From Email Address"
575
+ msgstr "Emissor del correu"
576
+
577
+ #: classes/class.swpm-settings.php:106
578
+ msgid "Email Settings (Prompt to Complete Registration )"
579
+ msgstr ""
580
+ "Configuració del correu electrònic (Sol·licitud per a completar el registre)"
581
+
582
+ #: classes/class.swpm-settings.php:107 classes/class.swpm-settings.php:113
583
+ #: classes/class.swpm-settings.php:125 classes/class.swpm-settings.php:132
584
+ msgid "Email Subject"
585
+ msgstr "Assumpte del correu"
586
+
587
+ #: classes/class.swpm-settings.php:109 classes/class.swpm-settings.php:115
588
+ #: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:134
589
+ msgid "Email Body"
590
+ msgstr "Cos del correu"
591
+
592
+ #: classes/class.swpm-settings.php:112
593
+ msgid "Email Settings (Registration Complete)"
594
+ msgstr "Configuració del correu electrònic (Registre complet)"
595
+
596
+ #: classes/class.swpm-settings.php:117
597
+ msgid "Send Notification to Admin"
598
+ msgstr "Trametre una notificació al Administrador"
599
+
600
+ #: classes/class.swpm-settings.php:118
601
+ msgid ""
602
+ "Enable this option if you want the admin to receive a notification when a "
603
+ "member registers."
604
+ msgstr ""
605
+ "Habiliteu aquesta opció si voleu que l'administrador per rebre una "
606
+ "notificació quan un registres membres."
607
+
608
+ #: classes/class.swpm-settings.php:119
609
+ msgid "Admin Email Address"
610
+ msgstr "Correu del administrador"
611
+
612
+ #: classes/class.swpm-settings.php:120
613
+ msgid ""
614
+ "Enter the email address where you want the admin notification email to be "
615
+ "sent to."
616
+ msgstr ""
617
+ "Introduïu l'adreça de correu electrònic on voleu enviar el correu electrònic "
618
+ "de notificació a l’administració."
619
+
620
+ #: classes/class.swpm-settings.php:121
621
+ msgid "Send Email to Member When Added via Admin Dashboard"
622
+ msgstr ""
623
+ "Enviar correu electrònic notificant membres afegits a través del panell "
624
+ "d'administració"
625
+
626
+ #: classes/class.swpm-settings.php:124
627
+ msgid "Email Settings (Password Reset)"
628
+ msgstr "Configuració del correu electrònic (Restablir contrasenya)"
629
+
630
+ #: classes/class.swpm-settings.php:131
631
+ msgid " Email Settings (Account Upgrade Notification)"
632
+ msgstr ""
633
+ "Configuració del correu electrònic (Compte d'actualització de notificació)"
634
+
635
+ #: classes/class.swpm-settings.php:152
636
+ msgid "Enable Expired Account Login"
637
+ msgstr "Habilitar la entrada de comptes caducats"
638
+
639
+ #: classes/class.swpm-settings.php:153
640
+ msgid ""
641
+ "When enabled, expired members will be able to log into the system but won't "
642
+ "be able to view any protected content. This allows them to easily renew "
643
+ "their account by making another payment."
644
+ msgstr ""
645
+ "Quan s'activa, els membres caducats podran iniciar sessió en el sistema, "
646
+ "però no seran capaços de veure qualsevol contingut protegit. Això els permet "
647
+ "renovar fàcilment el seu compte al fer un altre pagament."
648
+
649
+ #: classes/class.swpm-settings.php:377
650
+ msgid "Not a Member?"
651
+ msgstr "No ets membre?"
652
+
653
+ #: classes/class.swpm-settings.php:377 views/login.php:27
654
+ msgid "Join Us"
655
+ msgstr "Uneix-te"
656
+
657
+ #: classes/class.swpm-utils.php:67
658
+ msgid "Active"
659
+ msgstr "Actiu"
660
+
661
+ #: classes/class.swpm-utils.php:68
662
+ msgid "Inactive"
663
+ msgstr "Inactiu"
664
+
665
+ #: classes/class.swpm-utils.php:69
666
+ msgid "Pending"
667
+ msgstr "Pendent"
668
+
669
+ #: classes/class.swpm-utils.php:70
670
+ msgid "Expired"
671
+ msgstr "Caducat"
672
+
673
+ #: classes/class.swpm-utils.php:296
674
+ msgid "Never"
675
+ msgstr "Mai"
676
+
677
+ #: classes/class.swpm-utils.php:370
678
+ msgid "Delete Account"
679
+ msgstr "Compte esborrat"
680
+
681
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:63
682
+ msgid "Payment Button ID"
683
+ msgstr "ID del botó de pagament"
684
+
685
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:64
686
+ msgid "Payment Button Title"
687
+ msgstr "Etiqueta del botó de pagament"
688
+
689
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:65
690
+ msgid "Membership Level ID"
691
+ msgstr "ID del nivell d’identificació"
692
+
693
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:66
694
+ msgid "Button Shortcode"
695
+ msgstr "Shortcode del botó"
696
+
697
+ #: classes/admin-includes/class.swpm-payment-buttons-list-table.php:106
698
+ #: views/admin_members_list.php:15
699
+ #: views/payments/admin_all_payment_transactions.php:33
700
+ msgid "The selected entry was deleted!"
701
+ msgstr "L’entrada seleccionada està esborrada!"
702
+
703
+ #: classes/admin-includes/class.swpm-payments-list-table.php:46
704
+ msgid "Row ID"
705
+ msgstr "ID de Casella"
706
+
707
+ #: classes/admin-includes/class.swpm-payments-list-table.php:47
708
+ #: views/forgot_password.php:5
709
+ msgid "Email Address"
710
+ msgstr "Adreça de correu"
711
+
712
+ #: classes/admin-includes/class.swpm-payments-list-table.php:50
713
+ msgid "Date"
714
+ msgstr "Data"
715
+
716
+ #: classes/admin-includes/class.swpm-payments-list-table.php:51
717
+ msgid "Transaction ID"
718
+ msgstr "ID de la transacció"
719
+
720
+ #: classes/admin-includes/class.swpm-payments-list-table.php:52
721
+ msgid "Amount"
722
+ msgstr "Import"
723
+
724
+ #: classes/common/class.swpm-list-table.php:137
725
+ msgid "List View"
726
+ msgstr "Vista de llista"
727
+
728
+ #: classes/common/class.swpm-list-table.php:138
729
+ msgid "Excerpt View"
730
+ msgstr "Vista de resum"
731
+
732
+ #: classes/common/class.swpm-list-table.php:305
733
+ msgid "No items found."
734
+ msgstr "No es troben entrades."
735
+
736
+ #: classes/common/class.swpm-list-table.php:431
737
+ msgid "Select bulk action"
738
+ msgstr "Seleccionar l’acció global"
739
+
740
+ #: classes/common/class.swpm-list-table.php:433
741
+ msgid "Bulk Actions"
742
+ msgstr "Accions globals"
743
+
744
+ #: classes/common/class.swpm-list-table.php:443
745
+ msgid "Apply"
746
+ msgstr "Aplicar"
747
+
748
+ #: classes/common/class.swpm-list-table.php:543
749
+ msgid "Filter by date"
750
+ msgstr "Filtre per dates"
751
+
752
+ #: classes/common/class.swpm-list-table.php:545
753
+ msgid "All dates"
754
+ msgstr "Totes les dates"
755
+
756
+ #: classes/common/class.swpm-list-table.php:555
757
+ #, php-format
758
+ msgid "%1$s %2$d"
759
+ msgstr "%1$s %2$d"
760
+
761
+ #: classes/common/class.swpm-list-table.php:599
762
+ #, php-format
763
+ msgid "%s pending"
764
+ msgstr "%s restant"
765
+
766
+ #: classes/common/class.swpm-list-table.php:704
767
+ msgid "Select Page"
768
+ msgstr "Seleccionar pàgina"
769
+
770
+ #: classes/common/class.swpm-list-table.php:848
771
+ msgid "Select All"
772
+ msgstr "Seleccionar tot"
773
+
774
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:47
775
+ msgid "Your membership profile will be updated to reflect the payment."
776
+ msgstr "El seu perfil de membres s'actualitzarà per reflectir el pagament."
777
+
778
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:48
779
+ msgid "Your profile username: "
780
+ msgstr "El seu perfil d’usuari:"
781
+
782
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
783
+ msgid "Click on the following link to complete the registration."
784
+ msgstr "Feu clic al següent enllaç per a completar el registre."
785
+
786
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
787
+ msgid "Click here to complete your paid registration"
788
+ msgstr "Feu clic aquí per completar la seva inscripció de pagament"
789
+
790
+ #: classes/shortcode-related/class.swpm-shortcodes-handler.php:66
791
+ msgid ""
792
+ "If you have just made a membership payment then your payment is yet to be "
793
+ "processed. Please check back in a few minutes. An email will be sent to you "
794
+ "with the details shortly."
795
+ msgstr ""
796
+ "Si vostè acaba de fer un pagament, el pagament encara no s'ha processat. Si "
797
+ "us plau, torni a uns pocs minuts. En breu se li trametrà un correu "
798
+ "electrònic amb els detalls."
799
+
800
+ #: views/add.php:14 views/admin_add.php:19 views/admin_edit.php:17
801
+ #: views/edit.php:12 views/login.php:11
802
+ msgid "Password"
803
+ msgstr "Contrasenya"
804
+
805
+ #: views/add.php:18 views/edit.php:16
806
+ msgid "Repeat Password"
807
+ msgstr "Repeteixi la contrasenya"
808
+
809
+ #: views/add.php:41
810
+ msgid "Register"
811
+ msgstr "Registre"
812
+
813
+ #: views/admin_add.php:6
814
+ msgid "Add Member"
815
+ msgstr "Afegir membre"
816
+
817
+ #: views/admin_add.php:7
818
+ msgid "Create a brand new user and add it to this site."
819
+ msgstr "Crea un nou usuari i l’afegeix a aquest lloc."
820
+
821
+ #: views/admin_add.php:11
822
+ msgid "User name"
823
+ msgstr "Nom d’usuari"
824
+
825
+ #: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:11
826
+ #: views/admin_add_level.php:15 views/admin_add_level.php:19
827
+ #: views/admin_edit.php:9 views/admin_edit.php:13 views/admin_edit_level.php:10
828
+ #: views/admin_edit_level.php:14 views/admin_edit_level.php:18
829
+ msgid "(required)"
830
+ msgstr "(obligatori)"
831
+
832
+ #: views/admin_add.php:15 views/admin_edit.php:13
833
+ msgid "E-mail"
834
+ msgstr "Correu"
835
+
836
+ #: views/admin_add.php:19
837
+ msgid "(twice, required)"
838
+ msgstr "(dues vegades, es requereix)"
839
+
840
+ #: views/admin_add.php:24 views/admin_edit.php:21
841
+ msgid "Strength indicator"
842
+ msgstr "Força de la contrasenya"
843
+
844
+ #: views/admin_add.php:25 views/admin_edit.php:22
845
+ msgid ""
846
+ "Hint: The password should be at least seven characters long. To make it "
847
+ "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
848
+ "$ % ^ &amp; )."
849
+ msgstr ""
850
+ "Consell: La contrasenya ha de tenir almenys set caràcters. Per fer-ho més "
851
+ "fort, utilitzeu lletres majúscules i minúscules, nombres i símbols com! ? \"$"
852
+ "% ^ & Amp;)."
853
+
854
+ #: views/admin_add.php:29 views/admin_edit.php:26 views/loggedin.php:7
855
+ msgid "Account Status"
856
+ msgstr "Status del compte"
857
+
858
+ #: views/admin_add.php:39
859
+ msgid "Add New Member "
860
+ msgstr "Afegir un nou membre"
861
+
862
+ #: views/admin_addon_settings.php:3 views/admin_settings.php:3
863
+ #: views/admin_tools_settings.php:3 views/payments/admin_payment_settings.php:3
864
+ msgid "Simple WP Membership::Settings"
865
+ msgstr "Simple WP Membership::Configuració"
866
+
867
+ #: views/admin_addon_settings.php:8
868
+ msgid ""
869
+ "Some of the simple membership plugin's addon settings and options will be "
870
+ "displayed here (if you have them)"
871
+ msgstr ""
872
+ "Algunes de les configuracions i opcions de plugins es mostraran aquí (si els "
873
+ "té)"
874
+
875
+ #: views/admin_addon_settings.php:13
876
+ msgid "Save Changes"
877
+ msgstr "Desar canvis"
878
+
879
+ #: views/admin_add_level.php:6
880
+ msgid "Create new membership level."
881
+ msgstr "Crear un nou nivell de membres."
882
+
883
+ #: views/admin_add_level.php:11 views/admin_edit_level.php:10
884
+ msgid "Membership Level Name"
885
+ msgstr "Nom del nivell de membres"
886
+
887
+ #: views/admin_add_level.php:15 views/admin_edit_level.php:14
888
+ msgid "Default WordPress Role"
889
+ msgstr "Rol per defecte a WordPress"
890
+
891
+ #: views/admin_add_level.php:19 views/admin_edit_level.php:18
892
+ msgid "Access Duration"
893
+ msgstr "Duració del accés"
894
+
895
+ #: views/admin_add_level.php:22
896
+ msgid "No Expiry (Access for this level will not expire until cancelled"
897
+ msgstr ""
898
+ "No Expiració (accés per a aquest nivell no expira fins que es cancel·li)"
899
+
900
+ #: views/admin_add_level.php:23 views/admin_add_level.php:25
901
+ #: views/admin_add_level.php:27 views/admin_add_level.php:29
902
+ #: views/admin_edit_level.php:22 views/admin_edit_level.php:25
903
+ #: views/admin_edit_level.php:28 views/admin_edit_level.php:31
904
+ msgid "Expire After"
905
+ msgstr "Expira després de"
906
+
907
+ #: views/admin_add_level.php:24 views/admin_edit_level.php:23
908
+ msgid "Days (Access expires after given number of days)"
909
+ msgstr "Dies (Access expira després de determinat nombre de dies)"
910
+
911
+ #: views/admin_add_level.php:26
912
+ msgid "Weeks (Access expires after given number of weeks"
913
+ msgstr "Setmanes (Access expira després de determinat nombre de setmanes)"
914
+
915
+ #: views/admin_add_level.php:28 views/admin_edit_level.php:29
916
+ msgid "Months (Access expires after given number of months)"
917
+ msgstr "Mesos (Access expira després de determinat nombre de mesos)"
918
+
919
+ #: views/admin_add_level.php:30 views/admin_edit_level.php:32
920
+ msgid "Years (Access expires after given number of years)"
921
+ msgstr "Anys (Access expira després de determinat nombre d’anys)"
922
+
923
+ #: views/admin_add_level.php:31 views/admin_edit_level.php:34
924
+ msgid "Fixed Date Expiry"
925
+ msgstr "Data d’expiració fixa"
926
+
927
+ #: views/admin_add_level.php:32 views/admin_edit_level.php:35
928
+ msgid "(Access expires on a fixed date)"
929
+ msgstr "(L’accés expira en una data fixa)"
930
+
931
+ #: views/admin_add_level.php:38
932
+ msgid "Add New Membership Level "
933
+ msgstr "Afegir nou nivell de membres"
934
+
935
+ #: views/admin_add_ons_page.php:7
936
+ msgid "Simple WP Membership::Add-ons"
937
+ msgstr "Membres WP simple :: Complements"
938
+
939
+ #: views/admin_category_list.php:2
940
+ msgid "Simple WP Membership::Categories"
941
+ msgstr "Membres WP simple :: Categories"
942
+
943
+ #: views/admin_category_list.php:7
944
+ msgid ""
945
+ "First of all, globally protect the category on your site by selecting "
946
+ "\"General Protection\" from the drop-down box below and then select the "
947
+ "categories that should be protected from non-logged in users."
948
+ msgstr ""
949
+ "En primer lloc, protegir a nivell global la categoria al seu lloc mitjançant "
950
+ "la selecció de \"protecció general\" al quadre desplegable de sota i després "
951
+ "seleccionar les categories que han de ser protegides dels usuaris no "
952
+ "registrats."
953
+
954
+ #: views/admin_category_list.php:10
955
+ msgid ""
956
+ "Next, select an existing membership level from the drop-down box below and "
957
+ "then select the categories you want to grant access to (for that particular "
958
+ "membership level)."
959
+ msgstr ""
960
+ "A continuació, seleccioneu un nivell de membres vigent des del quadre "
961
+ "desplegable de sota i després seleccioneu les categories que voleu concedir "
962
+ "accés a (per a aquest nivell de membres en particular)."
963
+
964
+ #: views/admin_edit.php:5
965
+ msgid "Edit Member"
966
+ msgstr "Editar membre"
967
+
968
+ #: views/admin_edit.php:6
969
+ msgid "Edit existing member details."
970
+ msgstr "Editar detalls del membre."
971
+
972
+ #: views/admin_edit.php:9 views/login.php:5
973
+ msgid "Username"
974
+ msgstr "Nom d’usuari"
975
+
976
+ #: views/admin_edit.php:17
977
+ msgid "(twice, leave empty to retain old password)"
978
+ msgstr "(dues vegades, deixar en blanc per mantenir la contrasenya antiga)"
979
+
980
+ #: views/admin_edit.php:33
981
+ msgid "Notify User"
982
+ msgstr "Notificar a l’usuari"
983
+
984
+ #: views/admin_edit.php:40
985
+ msgid "Subscriber ID/Reference"
986
+ msgstr "Referència ID del subscriptor"
987
+
988
+ #: views/admin_edit.php:44
989
+ msgid "Last Accessed From IP"
990
+ msgstr "IP del darrer accés"
991
+
992
+ #: views/admin_edit.php:52
993
+ msgid "Edit User "
994
+ msgstr "Editar Usuari"
995
+
996
+ #: views/admin_edit_level.php:5
997
+ msgid "Edit membership level"
998
+ msgstr "Editar nivell de membres"
999
+
1000
+ #: views/admin_edit_level.php:6
1001
+ msgid "Edit membership level."
1002
+ msgstr "Editar nivell de membres"
1003
+
1004
+ #: views/admin_edit_level.php:21
1005
+ msgid "No Expiry (Access for this level will not expire until cancelled)"
1006
+ msgstr ""
1007
+ "No Expiració (accés per a aquest nivell no expira fins que es cancel·li)"
1008
+
1009
+ #: views/admin_edit_level.php:26
1010
+ msgid "Weeks (Access expires after given number of weeks)"
1011
+ msgstr "Setmanes (Access expira després de determinat nombre de setmanes)"
1012
+
1013
+ #: views/admin_edit_level.php:41
1014
+ msgid "Edit Membership Level "
1015
+ msgstr "Editar nivell de membres"
1016
+
1017
+ #: views/admin_members.php:2
1018
+ msgid "Simple WP Membership::Members"
1019
+ msgstr "Simple WP Membership::Membres"
1020
+
1021
+ #: views/admin_members.php:3 views/admin_members_list.php:30
1022
+ msgid "Add New"
1023
+ msgstr "Afegir nou"
1024
+
1025
+ #: views/admin_membership_levels.php:2
1026
+ msgid "Simple WP Membership::Membership Levels"
1027
+ msgstr "Simple WP Membership::Nivells de Membres"
1028
+
1029
+ #: views/admin_membership_levels.php:12 views/admin_members_list.php:6
1030
+ msgid "search"
1031
+ msgstr "cercar"
1032
+
1033
+ #: views/admin_membership_level_menu.php:2
1034
+ msgid "Membership level"
1035
+ msgstr "Nivell de membres"
1036
+
1037
+ #: views/admin_membership_level_menu.php:3
1038
+ msgid "Manage Content Production"
1039
+ msgstr "Maneig de Producció de Continguts"
1040
+
1041
+ #: views/admin_membership_level_menu.php:4
1042
+ msgid "Category Protection"
1043
+ msgstr "Categoria de protecció"
1044
+
1045
+ #: views/admin_membership_manage.php:17
1046
+ msgid "Example Content Protection Settings"
1047
+ msgstr "Exemple Configuració de protecció de contingut"
1048
+
1049
+ #: views/admin_member_form_common_part.php:23
1050
+ msgid "Gender"
1051
+ msgstr "Gènere"
1052
+
1053
+ #: views/admin_member_form_common_part.php:30 views/edit.php:28
1054
+ msgid "Phone"
1055
+ msgstr "Telèfon"
1056
+
1057
+ #: views/admin_member_form_common_part.php:34 views/edit.php:32
1058
+ msgid "Street"
1059
+ msgstr "Carrer"
1060
+
1061
+ #: views/admin_member_form_common_part.php:38 views/edit.php:36
1062
+ msgid "City"
1063
+ msgstr "Ciutat"
1064
+
1065
+ #: views/admin_member_form_common_part.php:42 views/edit.php:40
1066
+ msgid "State"
1067
+ msgstr "Estat"
1068
+
1069
+ #: views/admin_member_form_common_part.php:46 views/edit.php:44
1070
+ msgid "Zipcode"
1071
+ msgstr "Codi Postal"
1072
+
1073
+ #: views/admin_member_form_common_part.php:50 views/edit.php:48
1074
+ msgid "Country"
1075
+ msgstr "País"
1076
+
1077
+ #: views/admin_member_form_common_part.php:54
1078
+ msgid "Company"
1079
+ msgstr "Companyia"
1080
+
1081
+ #: views/admin_member_form_common_part.php:58
1082
+ msgid "Member Since"
1083
+ msgstr "Membre des de"
1084
+
1085
+ #: views/admin_tools_settings.php:9
1086
+ msgid "Generate a Registration Completion link"
1087
+ msgstr "Generar un enllaç de finalització del registre"
1088
+
1089
+ #: views/admin_tools_settings.php:12
1090
+ msgid ""
1091
+ "You can manually generate a registration completion link here and give it to "
1092
+ "your customer if they have missed the email that was automatically sent out "
1093
+ "to them after the payment."
1094
+ msgstr ""
1095
+ "Pot generar manualment un enllaç de finalització d'inscripció aquí i donar-"
1096
+ "li al seu client si han perdut el correu electrònic que s'envia "
1097
+ "automàticament després del pagament."
1098
+
1099
+ #: views/admin_tools_settings.php:17
1100
+ msgid "Generate Registration Completion Link"
1101
+ msgstr "Generar un enllaç de finalització de registre"
1102
+
1103
+ #: views/admin_tools_settings.php:20
1104
+ msgid "OR"
1105
+ msgstr "o"
1106
+
1107
+ #: views/admin_tools_settings.php:21
1108
+ msgid "For All Pending Registrations"
1109
+ msgstr "Per tots els registres pendents"
1110
+
1111
+ #: views/admin_tools_settings.php:24
1112
+ msgid "Registration Completion Links Will Appear Below:"
1113
+ msgstr "L’enllaç de finalització del registre apareixerà a sota:"
1114
+
1115
+ #: views/admin_tools_settings.php:31
1116
+ msgid "Send Registration Reminder Email too"
1117
+ msgstr "També trametre un correu recordatori del registre"
1118
+
1119
+ #: views/admin_tools_settings.php:34
1120
+ msgid "Submit"
1121
+ msgstr "Trametre"
1122
+
1123
+ #: views/edit.php:58
1124
+ msgid "Update"
1125
+ msgstr "Actualitzar"
1126
+
1127
+ #: views/forgot_password.php:12
1128
+ msgid "Reset Password"
1129
+ msgstr "Restablir contrasenya"
1130
+
1131
+ #: views/loggedin.php:3
1132
+ msgid "Logged in as"
1133
+ msgstr "Connectat com"
1134
+
1135
+ #: views/loggedin.php:11
1136
+ msgid "Membership"
1137
+ msgstr "Membre"
1138
+
1139
+ #: views/loggedin.php:15
1140
+ msgid "Account Expiry"
1141
+ msgstr "El comte expira el"
1142
+
1143
+ #: views/loggedin.php:19
1144
+ msgid "Logout"
1145
+ msgstr "Sortir"
1146
+
1147
+ #: views/login.php:18
1148
+ msgid "Remember Me"
1149
+ msgstr "Recordar-me"
1150
+
1151
+ #: views/login.php:24
1152
+ msgid "Forgot Password"
1153
+ msgstr "Contrasenya oblidada"
1154
+
1155
+ #: views/payments/admin_all_payment_transactions.php:7
1156
+ msgid "All the payments/transactions of your members are recorded here."
1157
+ msgstr "Tots els pagaments / transaccions dels seus membres es registren aquí."
1158
+
1159
+ #: views/payments/admin_all_payment_transactions.php:14
1160
+ msgid "Search for a transaction by using email or name"
1161
+ msgstr "Recerca d'una transacció mitjançant l'ús de correu electrònic o nom"
1162
+
1163
+ #: views/payments/admin_all_payment_transactions.php:18
1164
+ msgid "Search"
1165
+ msgstr "Cerca"
1166
+
1167
+ #: views/payments/admin_create_payment_buttons.php:13
1168
+ msgid ""
1169
+ "You can create new payment button for your memberships using this interface."
1170
+ msgstr ""
1171
+ "Pots crear un nou botó de pagament per als seus membres utilitzant aquesta "
1172
+ "interfície."
1173
+
1174
+ #: views/payments/admin_create_payment_buttons.php:22
1175
+ msgid "Select Payment Button Type"
1176
+ msgstr "Seleccioneu tipus de botó de pagament"
1177
+
1178
+ #: views/payments/admin_create_payment_buttons.php:34
1179
+ msgid "Next"
1180
+ msgstr "Següent"
1181
+
1182
+ #: views/payments/admin_edit_payment_buttons.php:12
1183
+ msgid "You can edit a payment button using this interface."
1184
+ msgstr "Podeu editar un botó de pagament utilitzant aquesta interfície."
1185
+
1186
+ #: views/payments/admin_payments_page.php:9
1187
+ msgid "Simple Membership::Payments"
1188
+ msgstr "Simple Membership::Pagaments"
1189
+
1190
+ #: views/payments/admin_payment_buttons.php:7
1191
+ msgid ""
1192
+ "All the membership buttons that you created in the plugin are displayed here."
1193
+ msgstr "Tots els botons de membres que ha creat en el plugin es mostren aquí."
1194
+
1195
+ #: views/payments/admin_payment_settings.php:31
1196
+ msgid "PayPal Integration Settings"
1197
+ msgstr "Configuració de la integració amb PayPal"
1198
+
1199
+ #: views/payments/admin_payment_settings.php:34
1200
+ msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
1201
+ msgstr "Generar Codi \"Variables avançades\" per al seu botó de PayPal"
1202
+
1203
+ #: views/payments/admin_payment_settings.php:37
1204
+ msgid "Enter the Membership Level ID"
1205
+ msgstr "Entrar el nivell ID del membre"
1206
+
1207
+ #: views/payments/admin_payment_settings.php:39
1208
+ msgid "Generate Code"
1209
+ msgstr "Generar Codi"
1210
+
1211
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:18
1212
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:192
1213
+ msgid "PayPal Buy Now Button Configuration"
1214
+ msgstr "Configuració del botó Comprar Ara de PayPal"
1215
+
1216
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:28
1217
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:209
1218
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:29
1219
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:302
1220
+ msgid "Button Title"
1221
+ msgstr "Títol del botó"
1222
+
1223
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:46
1224
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:227
1225
+ msgid "Payment Amount"
1226
+ msgstr "Import del pagament"
1227
+
1228
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:54
1229
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:235
1230
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:47
1231
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:320
1232
+ msgid "Payment Currency"
1233
+ msgstr "Moneda del pagament"
1234
+
1235
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:93
1236
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:274
1237
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:173
1238
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:446
1239
+ msgid "Return URL"
1240
+ msgstr "URL de retorn"
1241
+
1242
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:101
1243
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:282
1244
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:86
1245
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:359
1246
+ msgid "PayPal Email"
1247
+ msgstr "Correu de PayPal"
1248
+
1249
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:109
1250
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
1251
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:181
1252
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:454
1253
+ msgid "Button Image URL"
1254
+ msgstr "URL del botó d’imatge"
1255
+
1256
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:119
1257
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:300
1258
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:193
1259
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:466
1260
+ msgid "Save Payment Data"
1261
+ msgstr "Desar data de pagament"
1262
+
1263
+ #: views/payments/payment-gateway/admin_paypal_buy_now_button.php:201
1264
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:294
1265
+ msgid "Button ID"
1266
+ msgstr "ID del botó"
1267
+
1268
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:20
1269
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:288
1270
+ msgid "PayPal Subscription Button Configuration"
1271
+ msgstr "Botó de configuració de la subscripció de PayPal"
1272
+
1273
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:94
1274
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
1275
+ msgid "Billing Amount Each Cycle"
1276
+ msgstr "Quantitat a facturar cada cicle"
1277
+
1278
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:102
1279
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
1280
+ msgid "Billing Cycle"
1281
+ msgstr "Cicle de pagament"
1282
+
1283
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:115
1284
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:388
1285
+ msgid "Billing Cycle Count"
1286
+ msgstr "Contador del cicle de pagament"
1287
+
1288
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:123
1289
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
1290
+ msgid "Re-attempt on Failure"
1291
+ msgstr "Reintentar si falla"
1292
+
1293
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:136
1294
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:409
1295
+ msgid ""
1296
+ "Trial Billing Details (Leave empty if you are not offering a trial period)"
1297
+ msgstr ""
1298
+ "Detalls de facturació de Prova (Deixar en blanc si no està oferint un "
1299
+ "període de prova)"
1300
+
1301
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:142
1302
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:415
1303
+ msgid "Trial Billing Amount"
1304
+ msgstr "Preu de la prova"
1305
+
1306
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:150
1307
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:423
1308
+ msgid "Trial Billing Period"
1309
+ msgstr "Temps del periode de prova"
1310
+
1311
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:167
1312
+ #: views/payments/payment-gateway/admin_paypal_subscription_button.php:440
1313
+ msgid "Optional Details"
1314
+ msgstr "Detalls opcionals"
1315
+
1316
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:77
1317
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:79
1318
+ msgid "Buy Now"
1319
+ msgstr "Comprar ara"
1320
+
1321
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:197
1322
+ #: views/payments/payment-gateway/paypal_button_shortcode_view.php:199
1323
+ msgid "Subscribe Now"
1324
+ msgstr "Subscriure ara"
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.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
 
@@ -35,6 +35,8 @@ All the payments from your members are recorded in the plugin. You can view them
35
  = Member Login Widget on The Sidebar =
36
  You can easily add a member login widget on the sidebar of your site. Simply use the login form shortcode in the sidebar widget.
37
 
 
 
38
  = Documentation =
39
 
40
  Read the [setup documentation](https://simple-membership-plugin.com/simple-membership-documentation/) after you install the plugin to get started.
@@ -54,6 +56,7 @@ You can create a free forum user account and ask your questions.
54
  * Comments on your protected posts will also be protected automatically.
55
  * There is an option to enable debug logging so you can troubleshoot membership payment related issues easily (if any).
56
  * Ability to customize the content protection message that gets shown to non-members.
 
57
  * Membership management side is handled by the plugin.
58
  * Ability to manually approve your members.
59
  * Ability to import WordPress users as members.
@@ -96,6 +99,7 @@ The following language translations are already available:
96
  * Latvian
97
  * Indonesian
98
  * Hebrew
 
99
 
100
  You can translate the plugin using the language [translation documentation](https://simple-membership-plugin.com/translate-simple-membership-plugin/).
101
 
@@ -117,6 +121,30 @@ https://simple-membership-plugin.com/
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.
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.2.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
35
  = Member Login Widget on The Sidebar =
36
  You can easily add a member login widget on the sidebar of your site. Simply use the login form shortcode in the sidebar widget.
37
 
38
+ You can also customize the member login widget by creating a custom template file in your theme (or child theme) folder.
39
+
40
  = Documentation =
41
 
42
  Read the [setup documentation](https://simple-membership-plugin.com/simple-membership-documentation/) after you install the plugin to get started.
56
  * Comments on your protected posts will also be protected automatically.
57
  * There is an option to enable debug logging so you can troubleshoot membership payment related issues easily (if any).
58
  * Ability to customize the content protection message that gets shown to non-members.
59
+ * Ability to use merge vars in the membership email notification.
60
  * Membership management side is handled by the plugin.
61
  * Ability to manually approve your members.
62
  * Ability to import WordPress users as members.
99
  * Latvian
100
  * Indonesian
101
  * Hebrew
102
+ * Catalan
103
 
104
  You can translate the plugin using the language [translation documentation](https://simple-membership-plugin.com/translate-simple-membership-plugin/).
105
 
121
 
122
  == Changelog ==
123
 
124
+ = 3.2.1 =
125
+ - Added a new filter (swpm_transactions_menu_items_per_page) that can be used to customize the number of items that is listed in the transactions menu.
126
+ - Added more sorting option in the transactions table.
127
+ - Added sanitization for the sort inputs in the member transactions table.
128
+ - Fixed an issue with the auto delete pending account settings.
129
+ - Changed admin heading structure from h2 to h1.
130
+
131
+ = 3.2.0 =
132
+ - Added Catalan language translation file. The translation was submitted by Josep Ramon.
133
+ - Custom post type categories are also listed in the category protection menu.
134
+ - Added a new filter (swpm_members_menu_items_per_page) that can be used to customize the number of items that is listed in the members menu.
135
+ - The default number of items listed in the members menu by default has been increased to 50.
136
+ - Comment protection fix for posts using "more" tag.
137
+ - Comments of protected posts are also protected.
138
+ - Added CSS classes for all the field rows in the standard membership registration form.
139
+ - Added CSS classes for all the field rows in the edit profile form.
140
+
141
+ = 3.1.9 =
142
+ - Added new merge vars that can be used in the registration complete email. These are {member_id}, {account_state}, {email}, {member_since}
143
+ - Added trailingslashit() to the after logout redirect URL.
144
+ - Created a new extension to show member info. [usage documentation](https://simple-membership-plugin.com/simple-membership-addon-show-member-info/)
145
+ - A new cookie is dropped when a member logs into the site. It can be used for caching plugin compatibility.
146
+ - Added a new function to load the template for login widget and password reset form. This will allow customization of the login widget by adding the custom template to the theme folder.
147
+
148
  = 3.1.8 =
149
  - Improved the members and payments menu rendering for smaller screen devices.
150
  - Added a utility function to easily output a formatted date in the plugin according to the WordPress's date format settings.
simple-wp-membership.php CHANGED
@@ -1,7 +1,7 @@
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,12 +17,13 @@ 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.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__) . '/');
24
  define('SIMPLE_WP_MEMBERSHIP_URL', plugins_url('', __FILE__));
25
  define('SIMPLE_WP_MEMBERSHIP_DIRNAME', dirname(plugin_basename(__FILE__)));
 
26
  if (!defined('COOKIEHASH')) {
27
  define('COOKIEHASH', md5(get_site_option('siteurl')));
28
  }
1
  <?php
2
  /*
3
  Plugin Name: Simple WordPress Membership
4
+ Version: 3.2.1
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.2.1');
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__) . '/');
24
  define('SIMPLE_WP_MEMBERSHIP_URL', plugins_url('', __FILE__));
25
  define('SIMPLE_WP_MEMBERSHIP_DIRNAME', dirname(plugin_basename(__FILE__)));
26
+ define('SIMPLE_WP_MEMBERSHIP_TEMPLATE_PATH', 'simple-membership');
27
  if (!defined('COOKIEHASH')) {
28
  define('COOKIEHASH', md5(get_site_option('siteurl')));
29
  }
views/add.php CHANGED
@@ -2,31 +2,31 @@
2
  <form id="swpm-registration-form" name="swpm-registration-form" method="post" action="">
3
  <input type ="hidden" name="level_identifier" value="<?php echo $level_identifier ?>" />
4
  <table>
5
- <tr>
6
  <td><label for="user_name"><?php echo SwpmUtils::_('Username') ?></label></td>
7
  <td><input type="text" id="user_name" class="validate[required,custom[noapostrophe],custom[SWPMUserName],minSize[4],ajax[ajaxUserCall]]" value="<?php echo $user_name; ?>" size="50" name="user_name" /></td>
8
  </tr>
9
- <tr>
10
  <td><label for="email"><?php echo SwpmUtils::_('Email') ?></label></td>
11
  <td><input type="text" id="email" class="validate[required,custom[email],ajax[ajaxEmailCall]]" value="<?php echo $email; ?>" size="50" name="email" /></td>
12
  </tr>
13
- <tr>
14
  <td><label for="password"><?php echo SwpmUtils::_('Password') ?></label></td>
15
  <td><input type="password" autocomplete="off" id="password" value="" size="50" name="password" /></td>
16
  </tr>
17
- <tr>
18
  <td><label for="password_re"><?php echo SwpmUtils::_('Repeat Password') ?></label></td>
19
  <td><input type="password" autocomplete="off" id="password_re" value="" size="50" name="password_re" /></td>
20
  </tr>
21
- <tr>
22
  <td><label for="first_name"><?php echo SwpmUtils::_('First Name') ?></label></td>
23
  <td><input type="text" id="first_name" value="<?php echo $first_name; ?>" size="50" name="first_name" /></td>
24
  </tr>
25
- <tr>
26
  <td><label for="last_name"><?php echo SwpmUtils::_('Last Name') ?></label></td>
27
  <td><input type="text" id="last_name" value="<?php echo $last_name; ?>" size="50" name="last_name" /></td>
28
  </tr>
29
- <tr>
30
  <td><label for="membership_level"><?php echo SwpmUtils::_('Membership Level') ?></label></td>
31
  <td>
32
  <?php echo $membership_level_alias; ?>
@@ -42,7 +42,7 @@
42
  </div>
43
 
44
  <input type="hidden" name="action" value="custom_posts" />
45
- <?php wp_nonce_field('name_of_my_action', 'name_of_nonce_field'); ?>
46
  </form>
47
  </div>
48
  <script>
2
  <form id="swpm-registration-form" name="swpm-registration-form" method="post" action="">
3
  <input type ="hidden" name="level_identifier" value="<?php echo $level_identifier ?>" />
4
  <table>
5
+ <tr class="swpm-registration-username-row">
6
  <td><label for="user_name"><?php echo SwpmUtils::_('Username') ?></label></td>
7
  <td><input type="text" id="user_name" class="validate[required,custom[noapostrophe],custom[SWPMUserName],minSize[4],ajax[ajaxUserCall]]" value="<?php echo $user_name; ?>" size="50" name="user_name" /></td>
8
  </tr>
9
+ <tr class="swpm-registration-email-row">
10
  <td><label for="email"><?php echo SwpmUtils::_('Email') ?></label></td>
11
  <td><input type="text" id="email" class="validate[required,custom[email],ajax[ajaxEmailCall]]" value="<?php echo $email; ?>" size="50" name="email" /></td>
12
  </tr>
13
+ <tr class="swpm-registration-password-row">
14
  <td><label for="password"><?php echo SwpmUtils::_('Password') ?></label></td>
15
  <td><input type="password" autocomplete="off" id="password" value="" size="50" name="password" /></td>
16
  </tr>
17
+ <tr class="swpm-registration-password-retype-row">
18
  <td><label for="password_re"><?php echo SwpmUtils::_('Repeat Password') ?></label></td>
19
  <td><input type="password" autocomplete="off" id="password_re" value="" size="50" name="password_re" /></td>
20
  </tr>
21
+ <tr class="swpm-registration-firstname-row">
22
  <td><label for="first_name"><?php echo SwpmUtils::_('First Name') ?></label></td>
23
  <td><input type="text" id="first_name" value="<?php echo $first_name; ?>" size="50" name="first_name" /></td>
24
  </tr>
25
+ <tr class="swpm-registration-lastname-row">
26
  <td><label for="last_name"><?php echo SwpmUtils::_('Last Name') ?></label></td>
27
  <td><input type="text" id="last_name" value="<?php echo $last_name; ?>" size="50" name="last_name" /></td>
28
  </tr>
29
+ <tr class="swpm-registration-membership-level-row">
30
  <td><label for="membership_level"><?php echo SwpmUtils::_('Membership Level') ?></label></td>
31
  <td>
32
  <?php echo $membership_level_alias; ?>
42
  </div>
43
 
44
  <input type="hidden" name="action" value="custom_posts" />
45
+
46
  </form>
47
  </div>
48
  <script>
views/admin_add.php CHANGED
@@ -1,5 +1,4 @@
1
  <div class="wrap" id="swpm-profile-page" type="add">
2
- <?php //screen_icon(); ?>
3
  <form action="" method="post" name="swpm-create-user" id="swpm-create-user" class="validate"<?php do_action('user_new_form_tag');?>>
4
  <input name="action" type="hidden" value="createuser" />
5
  <?php wp_nonce_field( 'create-swpmuser', '_wpnonce_create-swpmuser' ) ?>
1
  <div class="wrap" id="swpm-profile-page" type="add">
 
2
  <form action="" method="post" name="swpm-create-user" id="swpm-create-user" class="validate"<?php do_action('user_new_form_tag');?>>
3
  <input name="action" type="hidden" value="createuser" />
4
  <?php wp_nonce_field( 'create-swpmuser', '_wpnonce_create-swpmuser' ) ?>
views/admin_add_ons_page.php CHANGED
@@ -4,7 +4,7 @@ echo '<link type="text/css" rel="stylesheet" href="' . SIMPLE_WP_MEMBERSHIP_URL
4
  ?>
5
 
6
  <div class="wrap">
7
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Add-ons') ?></h2>
8
 
9
  <div id="poststuff"><div id="post-body">
10
 
@@ -105,6 +105,22 @@ echo '<link type="text/css" rel="stylesheet" href="' . SIMPLE_WP_MEMBERSHIP_URL
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) {
4
  ?>
5
 
6
  <div class="wrap">
7
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Add-ons') ?></h1>
8
 
9
  <div id="poststuff"><div id="post-body">
10
 
105
  'page_url' => 'https://simple-membership-plugin.com/simple-membership-and-google-recaptcha-integration/',
106
  );
107
  array_push($addons_data, $addon_12);
108
+
109
+ $addon_13 = array(
110
+ 'name' => 'Show Member Info',
111
+ 'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/show-member-info.png',
112
+ 'description' => 'Allows you to show various member info using shortcodes.',
113
+ 'page_url' => 'https://simple-membership-plugin.com/simple-membership-addon-show-member-info/',
114
+ );
115
+ array_push($addons_data, $addon_13);
116
+
117
+ $addon_14 = array(
118
+ 'name' => 'Google First Click Free',
119
+ 'thumbnail' => SIMPLE_WP_MEMBERSHIP_URL . '/images/addons/google-first-click-free-addon.png',
120
+ 'description' => 'Allows you to integrate with the Google First Click Free feature.',
121
+ 'page_url' => 'https://simple-membership-plugin.com/simple-membership-google-first-click-free-integration-addon',
122
+ );
123
+ array_push($addons_data, $addon_14);
124
 
125
  /*** Show the addons list ***/
126
  foreach ($addons_data as $addon) {
views/admin_addon_settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
 
3
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h2>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
1
  <div class="wrap">
2
 
3
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h1>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
views/admin_category_list.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <h2><?php screen_icon('users'); ?><?php echo SwpmUtils::_('Simple WP Membership::Categories') ?></h2>
3
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_membership_level_menu.php'); ?>
4
 
5
  <div style="background: none repeat scroll 0 0 #FFF6D5;border: 1px solid #D1B655;color: #3F2502;margin: 10px 0;padding: 5px 5px 5px 10px;text-shadow: 1px 1px #FFFFFF;">
1
  <div class="wrap">
2
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Categories') ?></h1>
3
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_membership_level_menu.php'); ?>
4
 
5
  <div style="background: none repeat scroll 0 0 #FFF6D5;border: 1px solid #D1B655;color: #3F2502;margin: 10px 0;padding: 5px 5px 5px 10px;text-shadow: 1px 1px #FFFFFF;">
views/admin_members.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Members') ?>
3
- <a href="admin.php?page=simple_wp_membership&member_action=add" class="add-new-h2"><?php echo SwpmUtils::_('Add New'); ?></a></h2>
4
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_members_menu.php'); ?>
5
  <?php echo $output ?>
6
  </div><!-- end of wrap -->
1
  <div class="wrap">
2
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Members') ?>
3
+ <a href="admin.php?page=simple_wp_membership&member_action=add" class="add-new-h2"><?php echo SwpmUtils::_('Add New'); ?></a></h1>
4
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_members_menu.php'); ?>
5
  <?php echo $output ?>
6
  </div><!-- end of wrap -->
views/admin_membership_levels.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Membership Levels') ?>
3
- <a href="admin.php?page=simple_wp_membership_levels&level_action=add" class="add-new-h2"><?php SwpmUtils::e('Add New', 'Level'); ?></a></h2>
4
 
5
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_membership_level_menu.php'); ?>
6
 
1
  <div class="wrap">
2
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Membership Levels') ?>
3
+ <a href="admin.php?page=simple_wp_membership_levels&level_action=add" class="add-new-h2"><?php SwpmUtils::e('Add New', 'Level'); ?></a></h1>
4
 
5
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_membership_level_menu.php'); ?>
6
 
views/admin_membership_manage.php CHANGED
@@ -1,5 +1,5 @@
1
  <div class="wrap">
2
- <h2>Simple WP Membership::Manage Protection</h2>
3
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH.'views/admin_membership_level_menu.php');?>
4
 
5
  <div id="poststuff"><div id="post-body">
1
  <div class="wrap">
2
+ <h1>Simple WP Membership::Manage Protection</h1>
3
  <?php include_once(SIMPLE_WP_MEMBERSHIP_PATH.'views/admin_membership_level_menu.php');?>
4
 
5
  <div id="poststuff"><div id="post-body">
views/admin_settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
 
3
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h2>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
  <form action="options.php" method="POST">
1
  <div class="wrap">
2
 
3
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h1>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
  <form action="options.php" method="POST">
views/admin_tools_settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
 
3
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h2>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
1
  <div class="wrap">
2
 
3
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h1>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
views/edit.php CHANGED
@@ -1,55 +1,55 @@
1
  <div class="swpm-edit-profile-form">
2
  <form id="swpm-editprofile-form" name="swpm-editprofile-form" method="post" action="">
3
  <table>
4
- <tr>
5
  <td><label for="user_name"><?php echo SwpmUtils::_('Username') ?></label></td>
6
  <td><?php echo $user_name ?></td>
7
  </tr>
8
- <tr>
9
  <td><label for="email"><?php echo SwpmUtils::_('Email')?></label></td>
10
  <td><input type="text" id="email" class="validate[required,custom[email],ajax[ajaxEmailCall]]" value="<?php echo $email;?>" size="50" name="email" /></td>
11
  </tr>
12
- <tr>
13
  <td><label for="password"><?php echo SwpmUtils::_('Password')?></label></td>
14
  <td><input type="text" id="password" value="" size="50" name="password" /></td>
15
  </tr>
16
- <tr>
17
  <td><label for="password_re"><?php echo SwpmUtils::_('Repeat Password')?></label></td>
18
  <td><input type="text" id="password_re" value="" size="50" name="password_re" /></td>
19
  </tr>
20
- <tr>
21
  <td><label for="first_name"><?php echo SwpmUtils::_('First Name')?></label></td>
22
  <td><input type="text" id="first_name" value="<?php echo $first_name; ?>" size="50" name="first_name" /></td>
23
  </tr>
24
- <tr>
25
  <td><label for="last_name"><?php echo SwpmUtils::_('Last Name')?></label></td>
26
  <td><input type="text" id="last_name" value="<?php echo $last_name; ?>" size="50" name="last_name" /></td>
27
  </tr>
28
- <tr>
29
  <td><label for="phone"><?php echo SwpmUtils::_('Phone')?></label></td>
30
  <td><input type="text" id="phone" value="<?php echo $phone; ?>" size="50" name="phone" /></td>
31
  </tr>
32
- <tr>
33
  <td><label for="address_street"><?php echo SwpmUtils::_('Street')?></label></td>
34
  <td><input type="text" id="address_street" value="<?php echo $address_street; ?>" size="50" name="address_street" /></td>
35
  </tr>
36
- <tr>
37
  <td><label for="address_city"><?php echo SwpmUtils::_('City')?></label></td>
38
  <td><input type="text" id="address_city" value="<?php echo $address_city; ?>" size="50" name="address_city" /></td>
39
  </tr>
40
- <tr>
41
  <td><label for="address_state"><?php echo SwpmUtils::_('State')?></label></td>
42
  <td><input type="text" id="address_state" value="<?php echo $address_state; ?>" size="50" name="address_state" /></td>
43
  </tr>
44
- <tr>
45
  <td><label for="address_zipcode"><?php echo SwpmUtils::_('Zipcode')?></label></td>
46
  <td><input type="text" id="address_zipcode" value="<?php echo $address_zipcode; ?>" size="50" name="address_zipcode" /></td>
47
  </tr>
48
- <tr>
49
  <td><label for="country"><?php echo SwpmUtils::_('Country') ?></label></td>
50
  <td><input type="text" id="country" value="<?php echo $country; ?>" size="50" name="country" /></td>
51
  </tr>
52
- <tr>
53
  <td><label for="membership_level"><?php echo SwpmUtils::_('Membership Level')?></label></td>
54
  <td>
55
  <?php echo $membership_level_alias; ?>
@@ -62,7 +62,7 @@
62
  <?php echo SwpmUtils::delete_account_button(); ?>
63
 
64
  <input type="hidden" name="action" value="custom_posts" />
65
- <?php wp_nonce_field('name_of_my_action', 'name_of_nonce_field'); ?>
66
  </form>
67
  </div>
68
  <script>
1
  <div class="swpm-edit-profile-form">
2
  <form id="swpm-editprofile-form" name="swpm-editprofile-form" method="post" action="">
3
  <table>
4
+ <tr class="swpm-profile-username-row">
5
  <td><label for="user_name"><?php echo SwpmUtils::_('Username') ?></label></td>
6
  <td><?php echo $user_name ?></td>
7
  </tr>
8
+ <tr class="swpm-profile-email-row">
9
  <td><label for="email"><?php echo SwpmUtils::_('Email')?></label></td>
10
  <td><input type="text" id="email" class="validate[required,custom[email],ajax[ajaxEmailCall]]" value="<?php echo $email;?>" size="50" name="email" /></td>
11
  </tr>
12
+ <tr class="swpm-profile-password-row">
13
  <td><label for="password"><?php echo SwpmUtils::_('Password')?></label></td>
14
  <td><input type="text" id="password" value="" size="50" name="password" /></td>
15
  </tr>
16
+ <tr class="swpm-profile-password-retype-row">
17
  <td><label for="password_re"><?php echo SwpmUtils::_('Repeat Password')?></label></td>
18
  <td><input type="text" id="password_re" value="" size="50" name="password_re" /></td>
19
  </tr>
20
+ <tr class="swpm-profile-firstname-row">
21
  <td><label for="first_name"><?php echo SwpmUtils::_('First Name')?></label></td>
22
  <td><input type="text" id="first_name" value="<?php echo $first_name; ?>" size="50" name="first_name" /></td>
23
  </tr>
24
+ <tr class="swpm-profile-lastname-row">
25
  <td><label for="last_name"><?php echo SwpmUtils::_('Last Name')?></label></td>
26
  <td><input type="text" id="last_name" value="<?php echo $last_name; ?>" size="50" name="last_name" /></td>
27
  </tr>
28
+ <tr class="swpm-profile-phone-row">
29
  <td><label for="phone"><?php echo SwpmUtils::_('Phone')?></label></td>
30
  <td><input type="text" id="phone" value="<?php echo $phone; ?>" size="50" name="phone" /></td>
31
  </tr>
32
+ <tr class="swpm-profile-street-row">
33
  <td><label for="address_street"><?php echo SwpmUtils::_('Street')?></label></td>
34
  <td><input type="text" id="address_street" value="<?php echo $address_street; ?>" size="50" name="address_street" /></td>
35
  </tr>
36
+ <tr class="swpm-profile-city-row">
37
  <td><label for="address_city"><?php echo SwpmUtils::_('City')?></label></td>
38
  <td><input type="text" id="address_city" value="<?php echo $address_city; ?>" size="50" name="address_city" /></td>
39
  </tr>
40
+ <tr class="swpm-profile-state-row">
41
  <td><label for="address_state"><?php echo SwpmUtils::_('State')?></label></td>
42
  <td><input type="text" id="address_state" value="<?php echo $address_state; ?>" size="50" name="address_state" /></td>
43
  </tr>
44
+ <tr class="swpm-profile-zipcode-row">
45
  <td><label for="address_zipcode"><?php echo SwpmUtils::_('Zipcode')?></label></td>
46
  <td><input type="text" id="address_zipcode" value="<?php echo $address_zipcode; ?>" size="50" name="address_zipcode" /></td>
47
  </tr>
48
+ <tr class="swpm-profile-country-row">
49
  <td><label for="country"><?php echo SwpmUtils::_('Country') ?></label></td>
50
  <td><input type="text" id="country" value="<?php echo $country; ?>" size="50" name="country" /></td>
51
  </tr>
52
+ <tr class="swpm-profile-membership-level-row">
53
  <td><label for="membership_level"><?php echo SwpmUtils::_('Membership Level')?></label></td>
54
  <td>
55
  <?php echo $membership_level_alias; ?>
62
  <?php echo SwpmUtils::delete_account_button(); ?>
63
 
64
  <input type="hidden" name="action" value="custom_posts" />
65
+
66
  </form>
67
  </div>
68
  <script>
views/loggedin.php CHANGED
@@ -1,3 +1,6 @@
 
 
 
1
  <div class="swpm-login-widget-logged">
2
  <div class="swpm-logged-username">
3
  <div class="swpm-logged-username-label swpm-logged-label"><?php echo SwpmUtils::_('Logged in as') ?></div>
1
+ <?php
2
+ $auth = SwpmAuth::get_instance();
3
+ ?>
4
  <div class="swpm-login-widget-logged">
5
  <div class="swpm-logged-username">
6
  <div class="swpm-logged-username-label swpm-logged-label"><?php echo SwpmUtils::_('Logged in as') ?></div>
views/login.php CHANGED
@@ -1,33 +1,39 @@
 
 
 
 
 
 
1
  <div class="swpm-login-widget-form">
2
  <form id="swpm-login-form" name="swpm-login-form" method="post" action="">
3
  <div class="swpm-login-form-inner">
4
  <div class="swpm-username-label">
5
- <label for="swpm_user_name" class="swpm-label"><?php echo SwpmUtils::_('Username') ?></label>
6
  </div>
7
  <div class="swpm-username-input">
8
  <input type="text" class="swpm-text-field swpm-username-field" id="swpm_user_name" value="" size="25" name="swpm_user_name" />
9
  </div>
10
  <div class="swpm-password-label">
11
- <label for="swpm_password" class="swpm-label"><?php echo SwpmUtils::_('Password') ?></label>
12
  </div>
13
  <div class="swpm-password-input">
14
  <input type="password" class="swpm-text-field swpm-password-field" id="swpm_password" value="" size="25" name="swpm_password" />
15
  </div>
16
  <div class="swpm-remember-me">
17
  <span class="swpm-remember-checkbox"><input type="checkbox" name="rememberme" value="checked='checked'"></span>
18
- <span class="swpm-rember-label"> <?php echo SwpmUtils::_('Remember Me') ?></span>
19
  </div>
20
  <div class="swpm-login-submit">
21
- <input type="submit" class="swpm-login-form-submit" name="swpm-login" value="<?php echo SwpmUtils::_('Login') ?>"/>
22
  </div>
23
  <div class="swpm-forgot-pass-link">
24
- <a id="forgot_pass" class="swpm-login-form-pw-reset-link" href="<?php echo $password_reset_url; ?>"><?php echo SwpmUtils::_('Forgot Password') ?>?</a>
25
  </div>
26
  <div class="swpm-join-us-link">
27
- <a id="register" class="swpm-login-form-register-link" href="<?php echo $join_url; ?>"><?php echo SwpmUtils::_('Join Us') ?></a>
28
  </div>
29
  <div class="swpm-login-action-msg">
30
- <span class="swpm-login-widget-action-msg"><?php echo $auth->get_message(); ?></span>
31
  </div>
32
  </div>
33
  </form>
1
+ <?php
2
+ $auth = SwpmAuth::get_instance();
3
+ $setting = SwpmSettings::get_instance();
4
+ $password_reset_url = $setting->get_value('reset-page-url');
5
+ $join_url = $setting->get_value('join-us-page-url');
6
+ ?>
7
  <div class="swpm-login-widget-form">
8
  <form id="swpm-login-form" name="swpm-login-form" method="post" action="">
9
  <div class="swpm-login-form-inner">
10
  <div class="swpm-username-label">
11
+ <label for="swpm_user_name" class="swpm-label"><?php echo SwpmUtils::_('Username') ?></label>
12
  </div>
13
  <div class="swpm-username-input">
14
  <input type="text" class="swpm-text-field swpm-username-field" id="swpm_user_name" value="" size="25" name="swpm_user_name" />
15
  </div>
16
  <div class="swpm-password-label">
17
+ <label for="swpm_password" class="swpm-label"><?php echo SwpmUtils::_('Password') ?></label>
18
  </div>
19
  <div class="swpm-password-input">
20
  <input type="password" class="swpm-text-field swpm-password-field" id="swpm_password" value="" size="25" name="swpm_password" />
21
  </div>
22
  <div class="swpm-remember-me">
23
  <span class="swpm-remember-checkbox"><input type="checkbox" name="rememberme" value="checked='checked'"></span>
24
+ <span class="swpm-rember-label"> <?php echo SwpmUtils::_('Remember Me') ?></span>
25
  </div>
26
  <div class="swpm-login-submit">
27
+ <input type="submit" class="swpm-login-form-submit" name="swpm-login" value="<?php echo SwpmUtils::_('Login') ?>"/>
28
  </div>
29
  <div class="swpm-forgot-pass-link">
30
+ <a id="forgot_pass" class="swpm-login-form-pw-reset-link" href="<?php echo $password_reset_url; ?>"><?php echo SwpmUtils::_('Forgot Password') ?>?</a>
31
  </div>
32
  <div class="swpm-join-us-link">
33
+ <a id="register" class="swpm-login-form-register-link" href="<?php echo $join_url; ?>"><?php echo SwpmUtils::_('Join Us') ?></a>
34
  </div>
35
  <div class="swpm-login-action-msg">
36
+ <span class="swpm-login-widget-action-msg"><?php echo $auth->get_message(); ?></span>
37
  </div>
38
  </div>
39
  </form>
views/payments/admin_all_payment_transactions.php CHANGED
@@ -27,7 +27,7 @@ $payments_list_table = new SWPMPaymentsListTable();
27
  //Check if an action was performed
28
  if (isset($_REQUEST['action'])) { //Do list table form row action tasks
29
  if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_txn') { //Delete link was clicked for a row in list table
30
- $record_id = strip_tags($_REQUEST['id']);
31
  $payments_list_table->delete_record($record_id);
32
  $success_msg = '<div id="message" class="updated"><p><strong>';
33
  $success_msg .= SwpmUtils::_('The selected entry was deleted!');
27
  //Check if an action was performed
28
  if (isset($_REQUEST['action'])) { //Do list table form row action tasks
29
  if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_txn') { //Delete link was clicked for a row in list table
30
+ $record_id = sanitize_text_field($_REQUEST['id']);
31
  $payments_list_table->delete_record($record_id);
32
  $success_msg = '<div id="message" class="updated"><p><strong>';
33
  $success_msg .= SwpmUtils::_('The selected entry was deleted!');
views/payments/admin_create_payment_buttons.php CHANGED
@@ -40,7 +40,7 @@ if (!isset($_REQUEST['swpm_button_type_selected'])) {
40
  } else {
41
  //Button type has been selected. Show the payment button configuration option.
42
  //Fire the action hook. The addons can render the payment button configuration option as appropriate.
43
- $button_type = strip_tags($_REQUEST['button_type']);
44
  do_action('swpm_create_new_button_for_'.$button_type);
45
  //The payment addons will create the button from then redirect to the "edit" interface of that button after save.
46
 
40
  } else {
41
  //Button type has been selected. Show the payment button configuration option.
42
  //Fire the action hook. The addons can render the payment button configuration option as appropriate.
43
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
44
  do_action('swpm_create_new_button_for_'.$button_type);
45
  //The payment addons will create the button from then redirect to the "edit" interface of that button after save.
46
 
views/payments/admin_edit_payment_buttons.php CHANGED
@@ -16,7 +16,7 @@ do_action('swpm_edit_payment_button_process_submission'); //Addons can use this
16
  <?php
17
  //Fire the action hook. The addons can render the payment button edit interface
18
  //Button type (button_type) and Button id (button_id) must be present in the REQUEST
19
- $button_type = strip_tags($_REQUEST['button_type']);
20
- $button_id = strip_tags($_REQUEST['button_id']);
21
  do_action('swpm_edit_payment_button_for_' . $button_type, $button_id);
22
 
16
  <?php
17
  //Fire the action hook. The addons can render the payment button edit interface
18
  //Button type (button_type) and Button id (button_id) must be present in the REQUEST
19
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
20
+ $button_id = sanitize_text_field($_REQUEST['button_id']);
21
  do_action('swpm_edit_payment_button_for_' . $button_type, $button_id);
22
 
views/payments/admin_payment_settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="wrap">
2
 
3
- <h2><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h2>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
1
  <div class="wrap">
2
 
3
+ <h1><?php echo SwpmUtils::_('Simple WP Membership::Settings') ?></h1>
4
 
5
  <?php do_action("swpm-draw-tab"); ?>
6
 
views/payments/admin_payments_page.php CHANGED
@@ -6,7 +6,7 @@ $tab = isset($_GET['tab']) ? $_GET['tab'] : '';
6
 
7
  <div class="wrap">
8
 
9
- <h2><?php echo SwpmUtils::_('Simple Membership::Payments') ?></h2>
10
 
11
  <h2 class="nav-tab-wrapper">
12
  <a class="nav-tab <?php echo ($tab == '') ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_payments"><?php SwpmUtils::e('Transactions'); ?></a>
6
 
7
  <div class="wrap">
8
 
9
+ <h1><?php echo SwpmUtils::_('Simple Membership::Payments') ?></h1>
10
 
11
  <h2 class="nav-tab-wrapper">
12
  <a class="nav-tab <?php echo ($tab == '') ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_payments"><?php SwpmUtils::e('Transactions'); ?></a>
views/payments/payment-gateway/admin_paypal_buy_now_button.php CHANGED
@@ -19,7 +19,7 @@ function swpm_create_new_pp_buy_now_button() {
19
  <div class="inside">
20
 
21
  <form id="pp_button_config_form" method="post">
22
- <input type="hidden" name="button_type" value="<?php echo strip_tags($_REQUEST['button_type']); ?>">
23
  <input type="hidden" name="swpm_button_type_selected" value="1">
24
 
25
  <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
@@ -134,29 +134,30 @@ add_action('swpm_create_new_button_process_submission', 'swpm_save_new_pp_buy_no
134
  function swpm_save_new_pp_buy_now_button_data() {
135
  if (isset($_REQUEST['swpm_pp_buy_now_save_submit'])) {
136
  //This is a PayPal buy now button save event. Process the submission.
137
- //TODO - Do some basic validation check??
 
138
  //Save the button data
139
  $button_id = wp_insert_post(
140
  array(
141
- 'post_title' => strip_tags($_REQUEST['button_name']),
142
  'post_type' => 'swpm_payment_button',
143
  'post_content' => '',
144
  'post_status' => 'publish'
145
  )
146
  );
147
 
148
- $button_type = strip_tags($_REQUEST['button_type']);
149
  add_post_meta($button_id, 'button_type', $button_type);
150
- add_post_meta($button_id, 'membership_level_id', strip_tags($_REQUEST['membership_level_id']));
151
- add_post_meta($button_id, 'payment_amount', trim(strip_tags($_REQUEST['payment_amount'])));
152
- add_post_meta($button_id, 'payment_currency', strip_tags($_REQUEST['payment_currency']));
153
- add_post_meta($button_id, 'return_url', trim(strip_tags($_REQUEST['return_url'])));
154
- add_post_meta($button_id, 'paypal_email', trim(strip_tags($_REQUEST['paypal_email'])));
155
- add_post_meta($button_id, 'button_image_url', trim(strip_tags($_REQUEST['button_image_url'])));
156
 
157
  //Redirect to the edit interface of this button with $button_id
158
  //$url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
159
- //Redirect to the manager payment buttons interface
160
  $url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=payment_buttons';
161
  SwpmMiscUtils::redirect_to_url($url);
162
  }
@@ -176,8 +177,8 @@ function swpm_edit_pp_buy_now_button() {
176
 
177
  //Retrieve the payment button data and present it for editing.
178
 
179
- $button_id = strip_tags($_REQUEST['button_id']);
180
- $button_type = strip_tags($_REQUEST['button_type']);
181
 
182
  $button = get_post($button_id); //Retrieve the CPT for this button
183
 
@@ -315,11 +316,12 @@ add_action('swpm_edit_payment_button_process_submission', 'swpm_edit_pp_buy_now_
315
  function swpm_edit_pp_buy_now_button_data() {
316
  if (isset($_REQUEST['swpm_pp_buy_now_edit_submit'])) {
317
  //This is a PayPal buy now button edit event. Process the submission.
318
- //TODO - Do some basic validation check?
 
319
  //Update and Save the edited payment button data
320
- $button_id = strip_tags($_REQUEST['button_id']);
321
- $button_type = strip_tags($_REQUEST['button_type']);
322
- $button_name = strip_tags($_REQUEST['button_name']);
323
 
324
  $button_post = array(
325
  'ID' => $button_id,
@@ -329,12 +331,12 @@ function swpm_edit_pp_buy_now_button_data() {
329
  wp_update_post($button_post);
330
 
331
  update_post_meta($button_id, 'button_type', $button_type);
332
- update_post_meta($button_id, 'membership_level_id', strip_tags($_REQUEST['membership_level_id']));
333
- update_post_meta($button_id, 'payment_amount', trim(strip_tags($_REQUEST['payment_amount'])));
334
- update_post_meta($button_id, 'payment_currency', strip_tags($_REQUEST['payment_currency']));
335
- update_post_meta($button_id, 'return_url', trim(strip_tags($_REQUEST['return_url'])));
336
- update_post_meta($button_id, 'paypal_email', trim(strip_tags($_REQUEST['paypal_email'])));
337
- update_post_meta($button_id, 'button_image_url', trim(strip_tags($_REQUEST['button_image_url'])));
338
 
339
  echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
340
  }
19
  <div class="inside">
20
 
21
  <form id="pp_button_config_form" method="post">
22
+ <input type="hidden" name="button_type" value="<?php echo sanitize_text_field($_REQUEST['button_type']); ?>">
23
  <input type="hidden" name="swpm_button_type_selected" value="1">
24
 
25
  <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
134
  function swpm_save_new_pp_buy_now_button_data() {
135
  if (isset($_REQUEST['swpm_pp_buy_now_save_submit'])) {
136
  //This is a PayPal buy now button save event. Process the submission.
137
+ //TODO - Do some extra validation check?
138
+
139
  //Save the button data
140
  $button_id = wp_insert_post(
141
  array(
142
+ 'post_title' => sanitize_text_field($_REQUEST['button_name']),
143
  'post_type' => 'swpm_payment_button',
144
  'post_content' => '',
145
  'post_status' => 'publish'
146
  )
147
  );
148
 
149
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
150
  add_post_meta($button_id, 'button_type', $button_type);
151
+ add_post_meta($button_id, 'membership_level_id', sanitize_text_field($_REQUEST['membership_level_id']));
152
+ add_post_meta($button_id, 'payment_amount', trim(sanitize_text_field($_REQUEST['payment_amount'])));
153
+ add_post_meta($button_id, 'payment_currency', sanitize_text_field($_REQUEST['payment_currency']));
154
+ add_post_meta($button_id, 'return_url', trim(sanitize_text_field($_REQUEST['return_url'])));
155
+ add_post_meta($button_id, 'paypal_email', trim(sanitize_email($_REQUEST['paypal_email'])));
156
+ add_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
157
 
158
  //Redirect to the edit interface of this button with $button_id
159
  //$url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
160
+ //Redirect to the manage payment buttons interface
161
  $url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=payment_buttons';
162
  SwpmMiscUtils::redirect_to_url($url);
163
  }
177
 
178
  //Retrieve the payment button data and present it for editing.
179
 
180
+ $button_id = sanitize_text_field($_REQUEST['button_id']);
181
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
182
 
183
  $button = get_post($button_id); //Retrieve the CPT for this button
184
 
316
  function swpm_edit_pp_buy_now_button_data() {
317
  if (isset($_REQUEST['swpm_pp_buy_now_edit_submit'])) {
318
  //This is a PayPal buy now button edit event. Process the submission.
319
+ //TODO - Do some extra validation check?
320
+
321
  //Update and Save the edited payment button data
322
+ $button_id = sanitize_text_field($_REQUEST['button_id']);
323
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
324
+ $button_name = sanitize_text_field($_REQUEST['button_name']);
325
 
326
  $button_post = array(
327
  'ID' => $button_id,
331
  wp_update_post($button_post);
332
 
333
  update_post_meta($button_id, 'button_type', $button_type);
334
+ update_post_meta($button_id, 'membership_level_id', sanitize_text_field($_REQUEST['membership_level_id']));
335
+ update_post_meta($button_id, 'payment_amount', trim(sanitize_text_field($_REQUEST['payment_amount'])));
336
+ update_post_meta($button_id, 'payment_currency', sanitize_text_field($_REQUEST['payment_currency']));
337
+ update_post_meta($button_id, 'return_url', trim(sanitize_text_field($_REQUEST['return_url'])));
338
+ update_post_meta($button_id, 'paypal_email', trim(sanitize_email($_REQUEST['paypal_email'])));
339
+ update_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
340
 
341
  echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
342
  }
views/payments/payment-gateway/admin_paypal_subscription_button.php CHANGED
@@ -20,7 +20,7 @@ function swpm_create_new_pp_subscription_button() {
20
  <h3 class="hndle"><label for="title"><?php echo SwpmUtils::_('PayPal Subscription Button Configuration'); ?></label></h3>
21
  <div class="inside">
22
 
23
- <input type="hidden" name="button_type" value="<?php echo strip_tags($_REQUEST['button_type']); ?>">
24
  <input type="hidden" name="swpm_button_type_selected" value="1">
25
 
26
  <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
@@ -210,33 +210,32 @@ function swpm_save_new_pp_subscription_button_data() {
210
 
211
  $button_id = wp_insert_post(
212
  array(
213
- 'post_title' => strip_tags($_REQUEST['button_name']),
214
  'post_type' => 'swpm_payment_button',
215
  'post_content' => '',
216
  'post_status' => 'publish'
217
  )
218
  );
219
 
220
- $button_type = strip_tags($_REQUEST['button_type']);
221
  add_post_meta($button_id, 'button_type', $button_type);
222
- add_post_meta($button_id, 'membership_level_id', strip_tags($_REQUEST['membership_level_id']));
223
- //add_post_meta($button_id, 'payment_amount', trim(strip_tags($_REQUEST['payment_amount'])));
224
- add_post_meta($button_id, 'payment_currency', strip_tags($_REQUEST['payment_currency']));
225
- add_post_meta($button_id, 'return_url', trim(strip_tags($_REQUEST['return_url'])));
226
- add_post_meta($button_id, 'paypal_email', trim(strip_tags($_REQUEST['paypal_email'])));
227
- add_post_meta($button_id, 'button_image_url', trim(strip_tags($_REQUEST['button_image_url'])));
228
 
229
  //Subscription billing details
230
- add_post_meta($button_id, 'billing_amount', strip_tags($_REQUEST['billing_amount']));
231
- add_post_meta($button_id, 'billing_cycle', strip_tags($_REQUEST['billing_cycle']));
232
- add_post_meta($button_id, 'billing_cycle_term', strip_tags($_REQUEST['billing_cycle_term']));
233
- add_post_meta($button_id, 'billing_cycle_count', strip_tags($_REQUEST['billing_cycle_count']));
234
  add_post_meta($button_id, 'billing_reattempt', isset($_REQUEST['billing_reattempt']) ? '1' : '');
235
 
236
  //Trial billing details
237
- add_post_meta($button_id, 'trial_billing_amount', strip_tags($_REQUEST['trial_billing_amount']));
238
- add_post_meta($button_id, 'trial_billing_cycle', strip_tags($_REQUEST['trial_billing_cycle']));
239
- add_post_meta($button_id, 'trial_billing_cycle_term', strip_tags($_REQUEST['trial_billing_cycle_term']));
240
 
241
  //Redirect to the edit interface of this button with $button_id
242
  $url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
@@ -257,8 +256,8 @@ add_action('swpm_edit_payment_button_for_pp_subscription', 'swpm_edit_pp_subscri
257
  function swpm_edit_pp_subscription_button() {
258
  //Retrieve the payment button data and present it for editing.
259
 
260
- $button_id = strip_tags($_REQUEST['button_id']);
261
- $button_type = strip_tags($_REQUEST['button_type']);
262
 
263
  $button = get_post($button_id); //Retrieve the CPT for this button
264
 
@@ -482,9 +481,9 @@ function swpm_edit_pp_subscription_button_data() {
482
  //TODO - Do some basic validation check?
483
 
484
  //Update and Save the edited payment button data
485
- $button_id = strip_tags($_REQUEST['button_id']);
486
- $button_type = strip_tags($_REQUEST['button_type']);
487
- $button_name = strip_tags($_REQUEST['button_name']);
488
 
489
  $button_post = array(
490
  'ID' => $button_id,
@@ -494,24 +493,23 @@ function swpm_edit_pp_subscription_button_data() {
494
  wp_update_post($button_post);
495
 
496
  update_post_meta($button_id, 'button_type', $button_type);
497
- update_post_meta($button_id, 'membership_level_id', strip_tags($_REQUEST['membership_level_id']));
498
- //update_post_meta($button_id, 'payment_amount', trim(strip_tags($_REQUEST['payment_amount'])));
499
- update_post_meta($button_id, 'payment_currency', strip_tags($_REQUEST['payment_currency']));
500
- update_post_meta($button_id, 'return_url', trim(strip_tags($_REQUEST['return_url'])));
501
- update_post_meta($button_id, 'paypal_email', trim(strip_tags($_REQUEST['paypal_email'])));
502
- update_post_meta($button_id, 'button_image_url', trim(strip_tags($_REQUEST['button_image_url'])));
503
 
504
  //Subscription billing details
505
- update_post_meta($button_id, 'billing_amount', strip_tags($_REQUEST['billing_amount']));
506
- update_post_meta($button_id, 'billing_cycle', strip_tags($_REQUEST['billing_cycle']));
507
- update_post_meta($button_id, 'billing_cycle_term', strip_tags($_REQUEST['billing_cycle_term']));
508
- update_post_meta($button_id, 'billing_cycle_count', strip_tags($_REQUEST['billing_cycle_count']));
509
  update_post_meta($button_id, 'billing_reattempt', isset($_REQUEST['billing_reattempt']) ? '1' : '');
510
 
511
  //Trial billing details
512
- update_post_meta($button_id, 'trial_billing_amount', strip_tags($_REQUEST['trial_billing_amount']));
513
- update_post_meta($button_id, 'trial_billing_cycle', strip_tags($_REQUEST['trial_billing_cycle']));
514
- update_post_meta($button_id, 'trial_billing_cycle_term', strip_tags($_REQUEST['trial_billing_cycle_term']));
515
 
516
  echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
517
  }
20
  <h3 class="hndle"><label for="title"><?php echo SwpmUtils::_('PayPal Subscription Button Configuration'); ?></label></h3>
21
  <div class="inside">
22
 
23
+ <input type="hidden" name="button_type" value="<?php echo sanitize_text_field($_REQUEST['button_type']); ?>">
24
  <input type="hidden" name="swpm_button_type_selected" value="1">
25
 
26
  <table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
210
 
211
  $button_id = wp_insert_post(
212
  array(
213
+ 'post_title' => sanitize_text_field($_REQUEST['button_name']),
214
  'post_type' => 'swpm_payment_button',
215
  'post_content' => '',
216
  'post_status' => 'publish'
217
  )
218
  );
219
 
220
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
221
  add_post_meta($button_id, 'button_type', $button_type);
222
+ add_post_meta($button_id, 'membership_level_id', sanitize_text_field($_REQUEST['membership_level_id']));
223
+ add_post_meta($button_id, 'payment_currency', sanitize_text_field($_REQUEST['payment_currency']));
224
+ add_post_meta($button_id, 'return_url', trim(sanitize_text_field($_REQUEST['return_url'])));
225
+ add_post_meta($button_id, 'paypal_email', trim(sanitize_email($_REQUEST['paypal_email'])));
226
+ add_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
 
227
 
228
  //Subscription billing details
229
+ add_post_meta($button_id, 'billing_amount', sanitize_text_field($_REQUEST['billing_amount']));
230
+ add_post_meta($button_id, 'billing_cycle', sanitize_text_field($_REQUEST['billing_cycle']));
231
+ add_post_meta($button_id, 'billing_cycle_term', sanitize_text_field($_REQUEST['billing_cycle_term']));
232
+ add_post_meta($button_id, 'billing_cycle_count', sanitize_text_field($_REQUEST['billing_cycle_count']));
233
  add_post_meta($button_id, 'billing_reattempt', isset($_REQUEST['billing_reattempt']) ? '1' : '');
234
 
235
  //Trial billing details
236
+ add_post_meta($button_id, 'trial_billing_amount', sanitize_text_field($_REQUEST['trial_billing_amount']));
237
+ add_post_meta($button_id, 'trial_billing_cycle', sanitize_text_field($_REQUEST['trial_billing_cycle']));
238
+ add_post_meta($button_id, 'trial_billing_cycle_term', sanitize_text_field($_REQUEST['trial_billing_cycle_term']));
239
 
240
  //Redirect to the edit interface of this button with $button_id
241
  $url = admin_url() . 'admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=' . $button_id . '&button_type=' . $button_type;
256
  function swpm_edit_pp_subscription_button() {
257
  //Retrieve the payment button data and present it for editing.
258
 
259
+ $button_id = sanitize_text_field($_REQUEST['button_id']);
260
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
261
 
262
  $button = get_post($button_id); //Retrieve the CPT for this button
263
 
481
  //TODO - Do some basic validation check?
482
 
483
  //Update and Save the edited payment button data
484
+ $button_id = sanitize_text_field($_REQUEST['button_id']);
485
+ $button_type = sanitize_text_field($_REQUEST['button_type']);
486
+ $button_name = sanitize_text_field($_REQUEST['button_name']);
487
 
488
  $button_post = array(
489
  'ID' => $button_id,
493
  wp_update_post($button_post);
494
 
495
  update_post_meta($button_id, 'button_type', $button_type);
496
+ update_post_meta($button_id, 'membership_level_id', sanitize_text_field($_REQUEST['membership_level_id']));
497
+ update_post_meta($button_id, 'payment_currency', sanitize_text_field($_REQUEST['payment_currency']));
498
+ update_post_meta($button_id, 'return_url', trim(sanitize_text_field($_REQUEST['return_url'])));
499
+ update_post_meta($button_id, 'paypal_email', trim(sanitize_email($_REQUEST['paypal_email'])));
500
+ update_post_meta($button_id, 'button_image_url', trim(sanitize_text_field($_REQUEST['button_image_url'])));
 
501
 
502
  //Subscription billing details
503
+ update_post_meta($button_id, 'billing_amount', sanitize_text_field($_REQUEST['billing_amount']));
504
+ update_post_meta($button_id, 'billing_cycle', sanitize_text_field($_REQUEST['billing_cycle']));
505
+ update_post_meta($button_id, 'billing_cycle_term', sanitize_text_field($_REQUEST['billing_cycle_term']));
506
+ update_post_meta($button_id, 'billing_cycle_count', sanitize_text_field($_REQUEST['billing_cycle_count']));
507
  update_post_meta($button_id, 'billing_reattempt', isset($_REQUEST['billing_reattempt']) ? '1' : '');
508
 
509
  //Trial billing details
510
+ update_post_meta($button_id, 'trial_billing_amount', sanitize_text_field($_REQUEST['trial_billing_amount']));
511
+ update_post_meta($button_id, 'trial_billing_cycle', sanitize_text_field($_REQUEST['trial_billing_cycle']));
512
+ update_post_meta($button_id, 'trial_billing_cycle_term', sanitize_text_field($_REQUEST['trial_billing_cycle_term']));
513
 
514
  echo '<div id="message" class="updated fade"><p>Payment button data successfully updated!</p></div>';
515
  }