Version Description
- Added the text 'Username or Email' to the language translation POT file.
- Added a new action hook (swpm_front_end_registration_form_submitted) for when the front-end registration form is submitted
- Added nonce check for the "Delete Transaction" action in the payments menu.
Download this release
Release Info
Developer | mra13 |
Plugin | Simple Membership |
Version | 4.1.0 |
Comparing to | |
See all releases |
Code changes from version 4.0.7 to 4.1.0
- classes/admin-includes/class.swpm-payment-buttons-list-table.php +5 -1
- classes/admin-includes/class.swpm-payments-list-table.php +228 -224
- classes/class.simple-wp-membership.php +1 -1
- classes/class.swpm-front-registration.php +4 -1
- classes/class.swpm-log.php +185 -149
- classes/class.swpm-members.php +791 -780
- classes/class.swpm-membership-levels.php +335 -331
- classes/class.swpm-settings.php +49 -4
- classes/class.swpm-utils-member.php +37 -2
- classes/class.swpm-utils-misc.php +3 -0
- ipn/swpm_handle_subsc_ipn.php +371 -371
- languages/simple-membership-fr_CA.mo +0 -0
- languages/simple-membership-fr_CA.po +2918 -0
- languages/simple-membership-nb_NO.mo +0 -0
- languages/simple-membership-nb_NO.po +2239 -588
- languages/simple-membership.pot +4 -0
- log-auth.txt +0 -0
- log.txt +0 -0
- readme.txt +24 -2
- simple-wp-membership.php +30 -30
- views/add.php +1 -1
- views/admin_members_list.php +70 -69
- views/login.php +6 -5
- views/payments/admin_all_payment_transactions.php +1 -0
classes/admin-includes/class.swpm-payment-buttons-list-table.php
CHANGED
@@ -55,7 +55,7 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
|
|
55 |
//Build row actions
|
56 |
$actions = array(
|
57 |
'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=%s&button_type=%s">Edit</a>', $item['ID'], $button_type),
|
58 |
-
'delete' => sprintf('<a href="admin.php?page=simple_wp_membership_payments&tab=payment_buttons&action=delete_payment_btn&button_id=%s" onclick="return confirm(\'Are you sure you want to delete this record?\')">Delete</a>', $item['ID']),
|
59 |
);
|
60 |
|
61 |
//Return the refid column contents
|
@@ -106,6 +106,9 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
|
|
106 |
return;
|
107 |
}
|
108 |
|
|
|
|
|
|
|
109 |
foreach ($records_to_delete as $record_id) {
|
110 |
if(!is_numeric($record_id)){
|
111 |
wp_die('Error! ID must be a numeric number.');
|
@@ -123,6 +126,7 @@ class SwpmPaymentButtonsListTable extends WP_List_Table {
|
|
123 |
if(!is_numeric($record_id)){
|
124 |
wp_die('Error! ID must be a numeric number.');
|
125 |
}
|
|
|
126 |
wp_delete_post( $record_id );
|
127 |
$success_msg = '<div id="message" class="updated"><p>';
|
128 |
$success_msg .= SwpmUtils::_('The selected entry was deleted!');
|
55 |
//Build row actions
|
56 |
$actions = array(
|
57 |
'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_payments&tab=edit_button&button_id=%s&button_type=%s">Edit</a>', $item['ID'], $button_type),
|
58 |
+
'delete' => sprintf( '<a href="admin.php?page=simple_wp_membership_payments&tab=payment_buttons&action=delete_payment_btn&button_id=%s&_wpnonce=%s" onclick="return confirm(\'Are you sure you want to delete this record?\')">Delete</a>', $item['ID'], wp_create_nonce( 'swpm_delete_payment_btn_' . $item['ID'] ) ),
|
59 |
);
|
60 |
|
61 |
//Return the refid column contents
|
106 |
return;
|
107 |
}
|
108 |
|
109 |
+
$action = 'bulk-' . $this->_args['plural'];
|
110 |
+
check_admin_referer( $action );
|
111 |
+
|
112 |
foreach ($records_to_delete as $record_id) {
|
113 |
if(!is_numeric($record_id)){
|
114 |
wp_die('Error! ID must be a numeric number.');
|
126 |
if(!is_numeric($record_id)){
|
127 |
wp_die('Error! ID must be a numeric number.');
|
128 |
}
|
129 |
+
check_admin_referer( 'swpm_delete_payment_btn_' . $record_id );
|
130 |
wp_delete_post( $record_id );
|
131 |
$success_msg = '<div id="message" class="updated"><p>';
|
132 |
$success_msg .= SwpmUtils::_('The selected entry was deleted!');
|
classes/admin-includes/class.swpm-payments-list-table.php
CHANGED
@@ -1,224 +1,228 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! class_exists( 'WP_List_Table' ) ) {
|
4 |
-
require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
5 |
-
}
|
6 |
-
|
7 |
-
class SWPMPaymentsListTable extends WP_List_Table {
|
8 |
-
|
9 |
-
public function __construct() {
|
10 |
-
global $status, $page;
|
11 |
-
|
12 |
-
// Set parent defaults
|
13 |
-
parent::__construct(
|
14 |
-
array(
|
15 |
-
'singular' => 'transaction', // singular name of the listed records
|
16 |
-
'plural' => 'transactions', // plural name of the listed records
|
17 |
-
'ajax' => false, // does this table support ajax?
|
18 |
-
)
|
19 |
-
);
|
20 |
-
}
|
21 |
-
|
22 |
-
function column_default( $item, $column_name ) {
|
23 |
-
$val = $item[ $column_name ];
|
24 |
-
switch ( $column_name ) {
|
25 |
-
case 'payment_amount':
|
26 |
-
$val = SwpmMiscUtils::format_money( $val );
|
27 |
-
$val = apply_filters( 'swpm_transactions_page_amount_display', $val, $item );
|
28 |
-
break;
|
29 |
-
default:
|
30 |
-
break;
|
31 |
-
}
|
32 |
-
return $val;
|
33 |
-
}
|
34 |
-
|
35 |
-
function column_id( $item ) {
|
36 |
-
|
37 |
-
// Build row actions
|
38 |
-
$actions = array(
|
39 |
-
/* 'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_payments&edit_txn=%s">Edit</a>', $item['id']),//TODO - Will be implemented in a future date */
|
40 |
-
'delete' => sprintf( '<a href="admin.php?page=simple_wp_membership_payments&action=delete_txn&id=%s" onclick="return confirm(\'Are you sure you want to delete this record?\')">Delete</a>', $item['id'] ),
|
41 |
-
);
|
42 |
-
|
43 |
-
// Return the refid column contents
|
44 |
-
return $item['id'] . $this->row_actions( $actions );
|
45 |
-
}
|
46 |
-
|
47 |
-
function column_member_profile( $item ) {
|
48 |
-
global $wpdb;
|
49 |
-
$member_id = $item['member_id'];
|
50 |
-
$subscr_id = $item['subscr_id'];
|
51 |
-
$column_value = '';
|
52 |
-
|
53 |
-
if ( empty( $member_id ) ) {// Lets try to get the member id using unique reference
|
54 |
-
if ( ! empty( $subscr_id ) ) {
|
55 |
-
$resultset = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id=%s", $subscr_id ), OBJECT );
|
56 |
-
if ( $resultset ) {
|
57 |
-
// Found a record
|
58 |
-
$member_id = $resultset->member_id;
|
59 |
-
}
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
if ( ! empty( $member_id ) ) {
|
64 |
-
$profile_page = 'admin.php?page=simple_wp_membership&member_action=edit&member_id=' . $member_id;
|
65 |
-
$column_value = '<a href="' . $profile_page . '">' . SwpmUtils::_( 'View Profile' ) . '</a>';
|
66 |
-
} else {
|
67 |
-
$column_value = '';
|
68 |
-
}
|
69 |
-
return $column_value;
|
70 |
-
}
|
71 |
-
|
72 |
-
function column_cb( $item ) {
|
73 |
-
return sprintf(
|
74 |
-
'<input type="checkbox" name="%1$s[]" value="%2$s" />',
|
75 |
-
/* $1%s */ $this->_args['singular'], // Let's reuse singular label (affiliate)
|
76 |
-
/* $2%s */ $item['id'] // The value of the checkbox should be the record's key/id
|
77 |
-
);
|
78 |
-
}
|
79 |
-
|
80 |
-
function get_columns() {
|
81 |
-
$columns = array(
|
82 |
-
'cb' => '<input type="checkbox" />', // Render a checkbox instead of text
|
83 |
-
'id' => SwpmUtils::_( 'Row ID' ),
|
84 |
-
'email' => SwpmUtils::_( 'Email Address' ),
|
85 |
-
'first_name' => SwpmUtils::_( 'First Name' ),
|
86 |
-
'last_name' => SwpmUtils::_( 'Last Name' ),
|
87 |
-
'member_profile' => SwpmUtils::_( 'Member Profile' ),
|
88 |
-
'txn_date' => SwpmUtils::_( 'Date' ),
|
89 |
-
'txn_id' => SwpmUtils::_( 'Transaction ID' ),
|
90 |
-
'subscr_id' => SwpmUtils::_( 'Subscriber ID' ),
|
91 |
-
'payment_amount' => SwpmUtils::_( 'Amount' ),
|
92 |
-
'membership_level' => SwpmUtils::_( 'Membership Level' ),
|
93 |
-
|
94 |
-
);
|
95 |
-
return $columns;
|
96 |
-
}
|
97 |
-
|
98 |
-
function get_sortable_columns() {
|
99 |
-
$sortable_columns = array(
|
100 |
-
'id' => array( 'id', false ), // true means its already sorted
|
101 |
-
'membership_level' => array( 'membership_level', false ),
|
102 |
-
'last_name' => array( 'last_name', false ),
|
103 |
-
'txn_date' => array( 'txn_date', false ),
|
104 |
-
);
|
105 |
-
return $sortable_columns;
|
106 |
-
}
|
107 |
-
|
108 |
-
function get_bulk_actions() {
|
109 |
-
$actions = array(
|
110 |
-
'delete' => SwpmUtils::_( 'Delete' ),
|
111 |
-
);
|
112 |
-
return $actions;
|
113 |
-
}
|
114 |
-
|
115 |
-
function process_bulk_action() {
|
116 |
-
// Detect when a bulk action is being triggered...
|
117 |
-
if ( 'delete' === $this->current_action() ) {
|
118 |
-
$records_to_delete = array_map( 'sanitize_text_field', $_GET['transaction'] );
|
119 |
-
if ( empty( $records_to_delete ) ) {
|
120 |
-
echo '<div id="message" class="updated fade"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
|
121 |
-
return;
|
122 |
-
}
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
'
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
$
|
165 |
-
|
166 |
-
$this->
|
167 |
-
|
168 |
-
$this->
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
$
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
$sort_order
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
$
|
198 |
-
|
199 |
-
$
|
200 |
-
$
|
201 |
-
|
202 |
-
|
203 |
-
$query
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists( 'WP_List_Table' ) ) {
|
4 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
5 |
+
}
|
6 |
+
|
7 |
+
class SWPMPaymentsListTable extends WP_List_Table {
|
8 |
+
|
9 |
+
public function __construct() {
|
10 |
+
global $status, $page;
|
11 |
+
|
12 |
+
// Set parent defaults
|
13 |
+
parent::__construct(
|
14 |
+
array(
|
15 |
+
'singular' => 'transaction', // singular name of the listed records
|
16 |
+
'plural' => 'transactions', // plural name of the listed records
|
17 |
+
'ajax' => false, // does this table support ajax?
|
18 |
+
)
|
19 |
+
);
|
20 |
+
}
|
21 |
+
|
22 |
+
function column_default( $item, $column_name ) {
|
23 |
+
$val = $item[ $column_name ];
|
24 |
+
switch ( $column_name ) {
|
25 |
+
case 'payment_amount':
|
26 |
+
$val = SwpmMiscUtils::format_money( $val );
|
27 |
+
$val = apply_filters( 'swpm_transactions_page_amount_display', $val, $item );
|
28 |
+
break;
|
29 |
+
default:
|
30 |
+
break;
|
31 |
+
}
|
32 |
+
return $val;
|
33 |
+
}
|
34 |
+
|
35 |
+
function column_id( $item ) {
|
36 |
+
|
37 |
+
// Build row actions
|
38 |
+
$actions = array(
|
39 |
+
/* 'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_payments&edit_txn=%s">Edit</a>', $item['id']),//TODO - Will be implemented in a future date */
|
40 |
+
'delete' => sprintf( '<a href="admin.php?page=simple_wp_membership_payments&action=delete_txn&id=%s&_wpnonce=%s" onclick="return confirm(\'Are you sure you want to delete this record?\')">Delete</a>', $item['id'], wp_create_nonce( 'swpm_delete_txn_' . $item['id'] ) ),
|
41 |
+
);
|
42 |
+
|
43 |
+
// Return the refid column contents
|
44 |
+
return $item['id'] . $this->row_actions( $actions );
|
45 |
+
}
|
46 |
+
|
47 |
+
function column_member_profile( $item ) {
|
48 |
+
global $wpdb;
|
49 |
+
$member_id = $item['member_id'];
|
50 |
+
$subscr_id = $item['subscr_id'];
|
51 |
+
$column_value = '';
|
52 |
+
|
53 |
+
if ( empty( $member_id ) ) {// Lets try to get the member id using unique reference
|
54 |
+
if ( ! empty( $subscr_id ) ) {
|
55 |
+
$resultset = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id=%s", $subscr_id ), OBJECT );
|
56 |
+
if ( $resultset ) {
|
57 |
+
// Found a record
|
58 |
+
$member_id = $resultset->member_id;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( ! empty( $member_id ) ) {
|
64 |
+
$profile_page = 'admin.php?page=simple_wp_membership&member_action=edit&member_id=' . $member_id;
|
65 |
+
$column_value = '<a href="' . $profile_page . '">' . SwpmUtils::_( 'View Profile' ) . '</a>';
|
66 |
+
} else {
|
67 |
+
$column_value = '';
|
68 |
+
}
|
69 |
+
return $column_value;
|
70 |
+
}
|
71 |
+
|
72 |
+
function column_cb( $item ) {
|
73 |
+
return sprintf(
|
74 |
+
'<input type="checkbox" name="%1$s[]" value="%2$s" />',
|
75 |
+
/* $1%s */ $this->_args['singular'], // Let's reuse singular label (affiliate)
|
76 |
+
/* $2%s */ $item['id'] // The value of the checkbox should be the record's key/id
|
77 |
+
);
|
78 |
+
}
|
79 |
+
|
80 |
+
function get_columns() {
|
81 |
+
$columns = array(
|
82 |
+
'cb' => '<input type="checkbox" />', // Render a checkbox instead of text
|
83 |
+
'id' => SwpmUtils::_( 'Row ID' ),
|
84 |
+
'email' => SwpmUtils::_( 'Email Address' ),
|
85 |
+
'first_name' => SwpmUtils::_( 'First Name' ),
|
86 |
+
'last_name' => SwpmUtils::_( 'Last Name' ),
|
87 |
+
'member_profile' => SwpmUtils::_( 'Member Profile' ),
|
88 |
+
'txn_date' => SwpmUtils::_( 'Date' ),
|
89 |
+
'txn_id' => SwpmUtils::_( 'Transaction ID' ),
|
90 |
+
'subscr_id' => SwpmUtils::_( 'Subscriber ID' ),
|
91 |
+
'payment_amount' => SwpmUtils::_( 'Amount' ),
|
92 |
+
'membership_level' => SwpmUtils::_( 'Membership Level' ),
|
93 |
+
'status' => SwpmUtils::_( 'Status/Note' ),
|
94 |
+
);
|
95 |
+
return $columns;
|
96 |
+
}
|
97 |
+
|
98 |
+
function get_sortable_columns() {
|
99 |
+
$sortable_columns = array(
|
100 |
+
'id' => array( 'id', false ), // true means its already sorted
|
101 |
+
'membership_level' => array( 'membership_level', false ),
|
102 |
+
'last_name' => array( 'last_name', false ),
|
103 |
+
'txn_date' => array( 'txn_date', false ),
|
104 |
+
);
|
105 |
+
return $sortable_columns;
|
106 |
+
}
|
107 |
+
|
108 |
+
function get_bulk_actions() {
|
109 |
+
$actions = array(
|
110 |
+
'delete' => SwpmUtils::_( 'Delete' ),
|
111 |
+
);
|
112 |
+
return $actions;
|
113 |
+
}
|
114 |
+
|
115 |
+
function process_bulk_action() {
|
116 |
+
// Detect when a bulk action is being triggered...
|
117 |
+
if ( 'delete' === $this->current_action() ) {
|
118 |
+
$records_to_delete = array_map( 'sanitize_text_field', $_GET['transaction'] );
|
119 |
+
if ( empty( $records_to_delete ) ) {
|
120 |
+
echo '<div id="message" class="updated fade"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
|
121 |
+
return;
|
122 |
+
}
|
123 |
+
|
124 |
+
$action = 'bulk-' . $this->_args['plural'];
|
125 |
+
check_admin_referer( $action );
|
126 |
+
|
127 |
+
foreach ( $records_to_delete as $record_id ) {
|
128 |
+
if ( ! is_numeric( $record_id ) ) {
|
129 |
+
wp_die( 'Error! ID must be numeric.' );
|
130 |
+
}
|
131 |
+
global $wpdb;
|
132 |
+
$wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'swpm_payments_tbl WHERE id = %d', $record_id ) );
|
133 |
+
}
|
134 |
+
echo '<div id="message" class="updated fade"><p>Selected records deleted successfully!</p></div>';
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
function delete_record( $record_id ) {
|
139 |
+
global $wpdb;
|
140 |
+
$wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'swpm_payments_tbl WHERE id = %d', $record_id ) );
|
141 |
+
// also delete record from swpm_transactions CPT
|
142 |
+
$trans = get_posts(
|
143 |
+
array(
|
144 |
+
'meta_key' => 'db_row_id',
|
145 |
+
'meta_value' => $record_id,
|
146 |
+
'posts_per_page' => 1,
|
147 |
+
'offset' => 0,
|
148 |
+
'post_type' => 'swpm_transactions',
|
149 |
+
)
|
150 |
+
);
|
151 |
+
wp_reset_postdata();
|
152 |
+
if ( empty( $trans ) ) {
|
153 |
+
return;
|
154 |
+
}
|
155 |
+
$trans = $trans[0];
|
156 |
+
wp_delete_post( $trans->ID, true );
|
157 |
+
|
158 |
+
}
|
159 |
+
|
160 |
+
function prepare_items() {
|
161 |
+
global $wpdb;
|
162 |
+
|
163 |
+
// Lets decide how many records per page to show
|
164 |
+
$per_page = apply_filters( 'swpm_transactions_menu_items_per_page', 50 );
|
165 |
+
|
166 |
+
$columns = $this->get_columns();
|
167 |
+
$hidden = array();
|
168 |
+
$sortable = $this->get_sortable_columns();
|
169 |
+
|
170 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
171 |
+
|
172 |
+
$this->process_bulk_action();
|
173 |
+
|
174 |
+
// This checks for sorting input. Read and sanitize the inputs
|
175 |
+
$orderby_column = isset( $_GET['orderby'] ) ? sanitize_text_field( $_GET['orderby'] ) : '';
|
176 |
+
$sort_order = isset( $_GET['order'] ) ? sanitize_text_field( $_GET['order'] ) : '';
|
177 |
+
if ( empty( $orderby_column ) ) {
|
178 |
+
$orderby_column = 'id';
|
179 |
+
$sort_order = 'DESC';
|
180 |
+
}
|
181 |
+
$orderby_column = SwpmUtils::sanitize_value_by_array( $orderby_column, $sortable );
|
182 |
+
$sort_order = SwpmUtils::sanitize_value_by_array(
|
183 |
+
$sort_order,
|
184 |
+
array(
|
185 |
+
'DESC' => '1',
|
186 |
+
'ASC' => '1',
|
187 |
+
)
|
188 |
+
);
|
189 |
+
|
190 |
+
// pagination requirement
|
191 |
+
$current_page = $this->get_pagenum();
|
192 |
+
|
193 |
+
$search_term = filter_input( INPUT_POST, 'swpm_txn_search', FILTER_SANITIZE_STRING );
|
194 |
+
$search_term = trim( $search_term );
|
195 |
+
|
196 |
+
if ( $search_term ) {// Only load the searched records.
|
197 |
+
$like = $wpdb->esc_like( $search_term );
|
198 |
+
$like = '%' . $like . '%';
|
199 |
+
$prepare_query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_payments_tbl WHERE `email` LIKE %s OR `txn_id` LIKE %s OR `first_name` LIKE %s OR `last_name` LIKE %s", $like, $like, $like, $like );
|
200 |
+
$data = $wpdb->get_results( $prepare_query, ARRAY_A );
|
201 |
+
$total_items = count( $data );
|
202 |
+
} else { // Load all data in an optimized way (so it is only loading data for the current page)
|
203 |
+
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}swpm_payments_tbl";
|
204 |
+
$total_items = $wpdb->get_var( $query );
|
205 |
+
|
206 |
+
// pagination requirement
|
207 |
+
$query = "SELECT * FROM {$wpdb->prefix}swpm_payments_tbl ORDER BY $orderby_column $sort_order";
|
208 |
+
|
209 |
+
$offset = ( $current_page - 1 ) * $per_page;
|
210 |
+
$query .= ' LIMIT ' . (int) $offset . ',' . (int) $per_page;
|
211 |
+
|
212 |
+
$data = $wpdb->get_results( $query, ARRAY_A );
|
213 |
+
}
|
214 |
+
|
215 |
+
// Now we add our *sorted* data to the items property, where it can be used by the rest of the class.
|
216 |
+
$this->items = $data;
|
217 |
+
|
218 |
+
// pagination requirement
|
219 |
+
$this->set_pagination_args(
|
220 |
+
array(
|
221 |
+
'total_items' => $total_items, // WE have to calculate the total number of items
|
222 |
+
'per_page' => $per_page, // WE have to determine how many items to show on a page
|
223 |
+
'total_pages' => ceil( $total_items / $per_page ), // WE have to calculate the total number of pages
|
224 |
+
)
|
225 |
+
);
|
226 |
+
}
|
227 |
+
|
228 |
+
}
|
classes/class.simple-wp-membership.php
CHANGED
@@ -449,7 +449,7 @@ class SimpleWpMembership {
|
|
449 |
$extra = isset($message['extra']) ? $message['extra'] : array();
|
450 |
if (is_string($extra)) {
|
451 |
echo $extra;
|
452 |
-
} else if (is_array($extra)) {
|
453 |
echo '<ul>';
|
454 |
foreach ($extra as $key => $value) {
|
455 |
echo '<li>' . $value . '</li>';
|
449 |
$extra = isset($message['extra']) ? $message['extra'] : array();
|
450 |
if (is_string($extra)) {
|
451 |
echo $extra;
|
452 |
+
} else if (is_array($extra) && !empty($extra)) {
|
453 |
echo '<ul>';
|
454 |
foreach ($extra as $key => $value) {
|
455 |
echo '<li>' . $value . '</li>';
|
classes/class.swpm-front-registration.php
CHANGED
@@ -23,7 +23,8 @@ class SwpmFrontRegistration extends SwpmRegistration {
|
|
23 |
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
24 |
|
25 |
$rego_hidden_to_logged_users_msg = '<div class="registration_hidden_to_logged_users_msg">';
|
26 |
-
$rego_hidden_to_logged_users_msg .= SwpmUtils::_( "You are already logged in. You don't need to create another account. So the registration form is hidden." );
|
|
|
27 |
$rego_hidden_to_logged_users_msg .= '</div>';
|
28 |
return $rego_hidden_to_logged_users_msg;
|
29 |
}
|
@@ -86,6 +87,8 @@ class SwpmFrontRegistration extends SwpmRegistration {
|
|
86 |
}
|
87 |
|
88 |
public function register_front_end() {
|
|
|
|
|
89 |
|
90 |
//If captcha is present and validation failed, it returns an error string. If validation succeeds, it returns an empty string.
|
91 |
$captcha_validation_output = apply_filters( 'swpm_validate_registration_form_submission', '' );
|
23 |
if ( SwpmMemberUtils::is_member_logged_in() ) {
|
24 |
|
25 |
$rego_hidden_to_logged_users_msg = '<div class="registration_hidden_to_logged_users_msg">';
|
26 |
+
$rego_hidden_to_logged_users_msg .= '<div class="hide-rego-form-msg">' . SwpmUtils::_( "You are already logged in. You don't need to create another account. So the registration form is hidden." ) . '</div>';
|
27 |
+
$rego_hidden_to_logged_users_msg .= apply_filters('swpm_below_registration_form_hidden_message','');
|
28 |
$rego_hidden_to_logged_users_msg .= '</div>';
|
29 |
return $rego_hidden_to_logged_users_msg;
|
30 |
}
|
87 |
}
|
88 |
|
89 |
public function register_front_end() {
|
90 |
+
//Trigger action hook
|
91 |
+
do_action( 'swpm_front_end_registration_form_submitted' );
|
92 |
|
93 |
//If captcha is present and validation failed, it returns an error string. If validation succeeds, it returns an empty string.
|
94 |
$captcha_validation_output = apply_filters( 'swpm_validate_registration_form_submission', '' );
|
classes/class.swpm-log.php
CHANGED
@@ -1,154 +1,190 @@
|
|
1 |
<?php
|
2 |
|
3 |
class SwpmLog {
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
|
154 |
}
|
1 |
<?php
|
2 |
|
3 |
class SwpmLog {
|
4 |
+
private $error;
|
5 |
+
private $warn;
|
6 |
+
private $notice;
|
7 |
+
private static $intance;
|
8 |
+
private static $log_file;
|
9 |
+
private static $log_auth_file;
|
10 |
+
private function __construct() {
|
11 |
+
$this->error = array();
|
12 |
+
$this->warn = array();
|
13 |
+
$this->notice = array();
|
14 |
+
}
|
15 |
+
private static function gen_log_file_names() {
|
16 |
+
if ( ! empty( self::$log_file ) && ! empty( self::$log_auth_file ) ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
$settings = SwpmSettings::get_instance();
|
20 |
+
$suffix = $settings->get_value( 'log-file-suffix' );
|
21 |
+
if ( empty( $suffix ) ) {
|
22 |
+
$suffix = uniqid();
|
23 |
+
$settings->set_value( 'log-file-suffix', $suffix );
|
24 |
+
$settings->save();
|
25 |
+
}
|
26 |
+
self::$log_file = "log-{$suffix}.txt";
|
27 |
+
self::$log_auth_file = "log-auth-{$suffix}.txt";
|
28 |
+
}
|
29 |
+
|
30 |
+
public static function output_log( $type = 'd' ) {
|
31 |
+
if ( 'd' !== $type && 'a' !== $type ) {
|
32 |
+
return;
|
33 |
+
}
|
34 |
+
self::gen_log_file_names();
|
35 |
+
$log_file = 'd' === $type ? self::$log_file : self::$log_auth_file;
|
36 |
+
|
37 |
+
$fp = fopen( SIMPLE_WP_MEMBERSHIP_PATH . $log_file, 'r' );
|
38 |
+
header( 'Content-Type: text/plain' );
|
39 |
+
fpassthru( $fp );
|
40 |
+
die;
|
41 |
+
}
|
42 |
+
|
43 |
+
public static function get_logger( $context = '' ) {
|
44 |
+
$context = empty( $context ) ? 'default' : $context;
|
45 |
+
if ( ! isset( self::$intance[ $context ] ) ) {
|
46 |
+
self::$intance[ $context ] = new SwpmLog();
|
47 |
+
}
|
48 |
+
return self::$intance[ $context ];
|
49 |
+
}
|
50 |
+
public function error( $msg ) {
|
51 |
+
$this->error[] = $msg;
|
52 |
+
}
|
53 |
+
public function warn( $msg ) {
|
54 |
+
$this->warn[] = $msg;
|
55 |
+
}
|
56 |
+
public function debug( $msg ) {
|
57 |
+
$this->notice[] = $msg;
|
58 |
+
}
|
59 |
+
public function get( $to_screen = false ) {
|
60 |
+
$msg = '';
|
61 |
+
foreach ( $this->error as $error ) {
|
62 |
+
$msg .= 'ERROR: ' . $error . ( $to_screen ? '<br/>' : "\n" );
|
63 |
+
}
|
64 |
+
foreach ( $this->warn as $warn ) {
|
65 |
+
$msg .= 'WARN: ' . $warn . ( $to_screen ? '<br/>' : "\n" );
|
66 |
+
}
|
67 |
+
foreach ( $this->notice as $notice ) {
|
68 |
+
$msg = 'NOTICE: ' . $notice . ( $to_screen ? '<br/>' : "\n" );
|
69 |
+
}
|
70 |
+
return $msg;
|
71 |
+
}
|
72 |
+
public static function writeall( $path = '' ) {
|
73 |
+
if ( empty( $path ) ) {
|
74 |
+
self::gen_log_file_names();
|
75 |
+
$path = SIMPLE_WP_MEMBERSHIP_PATH . self::$log_file;}
|
76 |
+
$fp = fopen( $path, 'a' );
|
77 |
+
$date = current_time( 'mysql' );
|
78 |
+
fwrite( $fp, strtoupper( $date ) . ":\n" );
|
79 |
+
fwrite( $fp, str_repeat( '-=', ( strlen( $date ) + 1.0 ) / 2.0 ) . "\n" );
|
80 |
+
foreach ( self::$intance as $context => $intance ) {
|
81 |
+
fwrite( $fp, strtoupper( $context ) . ":\n" );
|
82 |
+
fwrite( $fp, str_repeat( '=', strlen( $context ) + 1 ) . "\n" );
|
83 |
+
fwrite( $fp, $intance->get() );
|
84 |
+
}
|
85 |
+
fclose( $fp );
|
86 |
+
}
|
87 |
+
|
88 |
+
public static function log_simple_debug( $message, $success, $end = false ) {
|
89 |
+
$settings = SwpmSettings::get_instance();
|
90 |
+
$debug_enabled = $settings->get_value( 'enable-debug' );
|
91 |
+
if ( empty( $debug_enabled ) ) {//Debug is not enabled
|
92 |
+
return;
|
93 |
+
}
|
94 |
+
|
95 |
+
//Lets write to the log file
|
96 |
+
self::gen_log_file_names();
|
97 |
+
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . self::$log_file;
|
98 |
+
|
99 |
+
// Timestamp
|
100 |
+
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
101 |
+
$text = '[' . $log_timestamp . '] - ' . ( ( $success ) ? 'SUCCESS: ' : 'FAILURE: ' ) . $message . "\n";
|
102 |
+
if ( $end ) {
|
103 |
+
$text .= "\n------------------------------------------------------------------\n\n";
|
104 |
+
}
|
105 |
+
// Write to log
|
106 |
+
$fp = fopen( $debug_log_file_name, 'a' );
|
107 |
+
fwrite( $fp, $text );
|
108 |
+
fclose( $fp ); // close file
|
109 |
+
}
|
110 |
+
|
111 |
+
public static function log_array_data_to_debug( $array_to_write, $success, $end = false ) {
|
112 |
+
$settings = SwpmSettings::get_instance();
|
113 |
+
$debug_enabled = $settings->get_value( 'enable-debug' );
|
114 |
+
if ( empty( $debug_enabled ) ) {//Debug is not enabled
|
115 |
+
return;
|
116 |
+
}
|
117 |
+
|
118 |
+
//Lets write to the log file
|
119 |
+
self::gen_log_file_names();
|
120 |
+
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . self::$log_file;
|
121 |
+
|
122 |
+
// Timestamp
|
123 |
+
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
124 |
+
$text = '[' . $log_timestamp . '] - ' . ( ( $success ) ? 'SUCCESS: ' : 'FAILURE: ' ) . "\n";
|
125 |
+
ob_start();
|
126 |
+
print_r( $array_to_write );
|
127 |
+
$var = ob_get_contents();
|
128 |
+
ob_end_clean();
|
129 |
+
$text .= $var;
|
130 |
+
|
131 |
+
if ( $end ) {
|
132 |
+
$text .= "\n------------------------------------------------------------------\n\n";
|
133 |
+
}
|
134 |
+
// Write to log
|
135 |
+
$fp = fopen( $debug_log_file_name, 'a' );
|
136 |
+
fwrite( $fp, $text );
|
137 |
+
fclose( $fp ); // close file
|
138 |
+
}
|
139 |
+
|
140 |
+
public static function log_auth_debug( $message, $success, $end = false ) {
|
141 |
+
$settings = SwpmSettings::get_instance();
|
142 |
+
$debug_enabled = $settings->get_value( 'enable-debug' );
|
143 |
+
if ( empty( $debug_enabled ) ) {//Debug is not enabled
|
144 |
+
return;
|
145 |
+
}
|
146 |
+
|
147 |
+
//Lets write to the log file
|
148 |
+
self::gen_log_file_names();
|
149 |
+
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . self::$log_auth_file;
|
150 |
+
|
151 |
+
// Timestamp
|
152 |
+
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
153 |
+
$text = '[' . $log_timestamp . '] - ' . ( ( $success ) ? 'SUCCESS: ' : 'FAILURE: ' ) . $message . "\n";
|
154 |
+
if ( $end ) {
|
155 |
+
$text .= "\n------------------------------------------------------------------\n\n";
|
156 |
+
}
|
157 |
+
// Write to log
|
158 |
+
$fp = fopen( $debug_log_file_name, 'a' );
|
159 |
+
fwrite( $fp, $text );
|
160 |
+
fclose( $fp ); // close file
|
161 |
+
}
|
162 |
+
|
163 |
+
public static function reset_swmp_log_files() {
|
164 |
+
$log_reset = true;
|
165 |
+
self::gen_log_file_names();
|
166 |
+
$logfile_list = array(
|
167 |
+
SIMPLE_WP_MEMBERSHIP_PATH . self::$log_file,
|
168 |
+
SIMPLE_WP_MEMBERSHIP_PATH . self::$log_auth_file,
|
169 |
+
);
|
170 |
+
|
171 |
+
foreach ( $logfile_list as $logfile ) {
|
172 |
+
if ( empty( $logfile ) ) {
|
173 |
+
continue;
|
174 |
+
}
|
175 |
+
|
176 |
+
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
177 |
+
$text = '[' . $log_timestamp . '] - SUCCESS: Log file reset';
|
178 |
+
$text .= "\n------------------------------------------------------------------\n\n";
|
179 |
+
$fp = fopen( $logfile, 'w' );
|
180 |
+
if ( $fp != false ) {
|
181 |
+
@fwrite( $fp, $text );
|
182 |
+
@fclose( $fp );
|
183 |
+
} else {
|
184 |
+
$log_reset = false;
|
185 |
+
}
|
186 |
+
}
|
187 |
+
return $log_reset;
|
188 |
+
}
|
189 |
|
190 |
}
|
classes/class.swpm-members.php
CHANGED
@@ -1,780 +1,791 @@
|
|
1 |
-
<?php
|
2 |
-
if ( ! class_exists( 'WP_List_Table' ) ) {
|
3 |
-
require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
4 |
-
}
|
5 |
-
|
6 |
-
class SwpmMembers extends WP_List_Table {
|
7 |
-
|
8 |
-
function __construct() {
|
9 |
-
parent::__construct(
|
10 |
-
array(
|
11 |
-
'singular' => SwpmUtils::_( 'Member' ),
|
12 |
-
'plural' => SwpmUtils::_( 'Members' ),
|
13 |
-
'ajax' => false,
|
14 |
-
)
|
15 |
-
);
|
16 |
-
}
|
17 |
-
|
18 |
-
function get_columns() {
|
19 |
-
|
20 |
-
'cb' => '<input type="checkbox" />',
|
21 |
-
'member_id' => SwpmUtils::_( 'ID' ),
|
22 |
-
'user_name' => SwpmUtils::_( 'Username' ),
|
23 |
-
'first_name' => SwpmUtils::_( 'First Name' ),
|
24 |
-
'last_name' => SwpmUtils::_( 'Last Name' ),
|
25 |
-
'email' => SwpmUtils::_( 'Email' ),
|
26 |
-
'alias' => SwpmUtils::_( 'Membership Level' ),
|
27 |
-
'subscription_starts' => SwpmUtils::_( 'Access Starts' ),
|
28 |
-
'account_state' => SwpmUtils::_( 'Account State' ),
|
29 |
-
'last_accessed' => SwpmUtils::_( 'Last Login Date' ),
|
30 |
-
);
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
'
|
37 |
-
'
|
38 |
-
'
|
39 |
-
'
|
40 |
-
'
|
41 |
-
'
|
42 |
-
'
|
43 |
-
'
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
'
|
52 |
-
'
|
53 |
-
'
|
54 |
-
'
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
$
|
99 |
-
|
100 |
-
$
|
101 |
-
$
|
102 |
-
|
103 |
-
$query
|
104 |
-
|
105 |
-
|
106 |
-
$
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
$
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
$
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
. " OR
|
126 |
-
. " OR
|
127 |
-
. " OR
|
128 |
-
. " OR
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
$
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$
|
161 |
-
$
|
162 |
-
$orderby =
|
163 |
-
$order =
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
$
|
181 |
-
if (
|
182 |
-
$
|
183 |
-
|
184 |
-
|
185 |
-
$
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
$this->
|
198 |
-
$
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
$
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
$
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
$
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
$
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
$
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
$
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
}
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
$
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
if (
|
518 |
-
//
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
if (
|
545 |
-
$
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
if (
|
582 |
-
$
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
$
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! class_exists( 'WP_List_Table' ) ) {
|
3 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
4 |
+
}
|
5 |
+
|
6 |
+
class SwpmMembers extends WP_List_Table {
|
7 |
+
|
8 |
+
function __construct() {
|
9 |
+
parent::__construct(
|
10 |
+
array(
|
11 |
+
'singular' => SwpmUtils::_( 'Member' ),
|
12 |
+
'plural' => SwpmUtils::_( 'Members' ),
|
13 |
+
'ajax' => false,
|
14 |
+
)
|
15 |
+
);
|
16 |
+
}
|
17 |
+
|
18 |
+
function get_columns() {
|
19 |
+
$columns = array(
|
20 |
+
'cb' => '<input type="checkbox" />',
|
21 |
+
'member_id' => SwpmUtils::_( 'ID' ),
|
22 |
+
'user_name' => SwpmUtils::_( 'Username' ),
|
23 |
+
'first_name' => SwpmUtils::_( 'First Name' ),
|
24 |
+
'last_name' => SwpmUtils::_( 'Last Name' ),
|
25 |
+
'email' => SwpmUtils::_( 'Email' ),
|
26 |
+
'alias' => SwpmUtils::_( 'Membership Level' ),
|
27 |
+
'subscription_starts' => SwpmUtils::_( 'Access Starts' ),
|
28 |
+
'account_state' => SwpmUtils::_( 'Account State' ),
|
29 |
+
'last_accessed' => SwpmUtils::_( 'Last Login Date' ),
|
30 |
+
);
|
31 |
+
return apply_filters( 'swpm_admin_members_table_columns', $columns );
|
32 |
+
}
|
33 |
+
|
34 |
+
function get_sortable_columns() {
|
35 |
+
$sortable_columns = array(
|
36 |
+
'member_id' => array( 'member_id', true ), //True means already sorted
|
37 |
+
'user_name' => array( 'user_name', false ),
|
38 |
+
'first_name' => array( 'first_name', false ),
|
39 |
+
'last_name' => array( 'last_name', false ),
|
40 |
+
'email' => array( 'email', false ),
|
41 |
+
'alias' => array( 'alias', false ),
|
42 |
+
'subscription_starts' => array( 'subscription_starts', false ),
|
43 |
+
'account_state' => array( 'account_state', false ),
|
44 |
+
'last_accessed' => array( 'last_accessed', false ),
|
45 |
+
);
|
46 |
+
return apply_filters( 'swpm_admin_members_table_sortable_columns', $sortable_columns );
|
47 |
+
}
|
48 |
+
|
49 |
+
function get_bulk_actions() {
|
50 |
+
$actions = array(
|
51 |
+
'bulk_delete' => SwpmUtils::_( 'Delete' ),
|
52 |
+
'bulk_active' => SwpmUtils::_( 'Set Status to Active' ),
|
53 |
+
'bulk_active_notify' => SwpmUtils::_( 'Set Status to Active and Notify' ),
|
54 |
+
'bulk_inactive' => SwpmUtils::_( 'Set Status to Inactive' ),
|
55 |
+
'bulk_pending' => SwpmUtils::_( 'Set Status to Pending' ),
|
56 |
+
'bulk_expired' => SwpmUtils::_( 'Set Status to Expired' ),
|
57 |
+
);
|
58 |
+
return $actions;
|
59 |
+
}
|
60 |
+
|
61 |
+
function column_default( $item, $column_name ) {
|
62 |
+
$column_data = apply_filters( 'swpm_admin_members_table_column_' . $column_name, $item[ $column_name ], $item );
|
63 |
+
return $column_data;
|
64 |
+
}
|
65 |
+
|
66 |
+
function column_account_state( $item ) {
|
67 |
+
$acc_state_str = ucfirst( $item['account_state'] );
|
68 |
+
return SwpmUtils::_( $acc_state_str );
|
69 |
+
}
|
70 |
+
|
71 |
+
function column_member_id( $item ) {
|
72 |
+
$delete_swpmuser_nonce = wp_create_nonce( 'delete_swpmuser_admin_end' );
|
73 |
+
$actions = array(
|
74 |
+
'edit' => sprintf( '<a href="admin.php?page=simple_wp_membership&member_action=edit&member_id=%s">Edit/View</a>', $item['member_id'] ),
|
75 |
+
'delete' => sprintf( '<a href="admin.php?page=simple_wp_membership&member_action=delete&member_id=%s&delete_swpmuser_nonce=%s" onclick="return confirm(\'Are you sure you want to delete this entry?\')">Delete</a>', $item['member_id'], $delete_swpmuser_nonce ),
|
76 |
+
);
|
77 |
+
return $item['member_id'] . $this->row_actions( $actions );
|
78 |
+
}
|
79 |
+
|
80 |
+
function column_user_name( $item ) {
|
81 |
+
$user_name = $item['user_name'];
|
82 |
+
if ( empty( $user_name ) ) {
|
83 |
+
$user_name = '[' . SwpmUtils::_( 'incomplete' ) . ']';
|
84 |
+
}
|
85 |
+
return $user_name;
|
86 |
+
}
|
87 |
+
|
88 |
+
function column_cb( $item ) {
|
89 |
+
return sprintf(
|
90 |
+
'<input type="checkbox" name="members[]" value="%s" />',
|
91 |
+
$item['member_id']
|
92 |
+
);
|
93 |
+
}
|
94 |
+
|
95 |
+
function prepare_items() {
|
96 |
+
global $wpdb;
|
97 |
+
|
98 |
+
$this->process_bulk_action();
|
99 |
+
|
100 |
+
$records_query_head = 'SELECT member_id,user_name,first_name,last_name,email,alias,subscription_starts,account_state,last_accessed';
|
101 |
+
$count_query_head = 'SELECT COUNT(member_id)';
|
102 |
+
|
103 |
+
$query = ' ';
|
104 |
+
$query .= ' FROM ' . $wpdb->prefix . 'swpm_members_tbl';
|
105 |
+
$query .= ' LEFT JOIN ' . $wpdb->prefix . 'swpm_membership_tbl';
|
106 |
+
$query .= ' ON ( membership_level = id ) ';
|
107 |
+
|
108 |
+
//Get the search string (if any)
|
109 |
+
$s = filter_input( INPUT_GET, 's' );
|
110 |
+
if ( empty( $s ) ) {
|
111 |
+
$s = filter_input( INPUT_POST, 's' );
|
112 |
+
}
|
113 |
+
|
114 |
+
$status = filter_input( INPUT_GET, 'status' );
|
115 |
+
$status = esc_attr( $status );//Escape value
|
116 |
+
|
117 |
+
$filters = array();
|
118 |
+
|
119 |
+
//Add the search parameter to the query
|
120 |
+
if ( ! empty( $s ) ) {
|
121 |
+
$s = sanitize_text_field( $s );
|
122 |
+
$s = trim( $s ); //Trim the input
|
123 |
+
$s = esc_attr( $s );
|
124 |
+
$filters[] = "( user_name LIKE '%" . strip_tags( $s ) . "%' "
|
125 |
+
. " OR first_name LIKE '%" . strip_tags( $s ) . "%' "
|
126 |
+
. " OR last_name LIKE '%" . strip_tags( $s ) . "%' "
|
127 |
+
. " OR email LIKE '%" . strip_tags( $s ) . "%' "
|
128 |
+
. " OR address_city LIKE '%" . strip_tags( $s ) . "%' "
|
129 |
+
. " OR address_state LIKE '%" . strip_tags( $s ) . "%' "
|
130 |
+
. " OR country LIKE '%" . strip_tags( $s ) . "%' "
|
131 |
+
. " OR company_name LIKE '%" . strip_tags( $s ) . "%' )";
|
132 |
+
}
|
133 |
+
|
134 |
+
//Add account status filtering to the query
|
135 |
+
if ( ! empty( $status ) ) {
|
136 |
+
if ( $status == 'incomplete' ) {
|
137 |
+
$filters[] = "user_name = ''";
|
138 |
+
} else {
|
139 |
+
$filters[] = "account_state = '" . $status . "'";
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
//Add membership level filtering
|
144 |
+
$membership_level = filter_input( INPUT_GET, 'membership_level', FILTER_SANITIZE_NUMBER_INT );
|
145 |
+
|
146 |
+
if ( ! empty( $membership_level ) ) {
|
147 |
+
$filters[] = sprintf( "membership_level = '%d'", $membership_level );
|
148 |
+
}
|
149 |
+
|
150 |
+
//Build the WHERE clause of the query string
|
151 |
+
if ( ! empty( $filters ) ) {
|
152 |
+
$filter_str = '';
|
153 |
+
foreach ( $filters as $ind => $filter ) {
|
154 |
+
$filter_str .= $ind === 0 ? $filter : ' AND ' . $filter;
|
155 |
+
}
|
156 |
+
$query .= 'WHERE ' . $filter_str;
|
157 |
+
}
|
158 |
+
|
159 |
+
//Build the orderby and order query parameters
|
160 |
+
$orderby = filter_input( INPUT_GET, 'orderby' );
|
161 |
+
$orderby = apply_filters( 'swpm_admin_members_table_orderby', $orderby );
|
162 |
+
$orderby = empty( $orderby ) ? 'member_id' : $orderby;
|
163 |
+
$order = filter_input( INPUT_GET, 'order' );
|
164 |
+
$order = empty( $order ) ? 'DESC' : $order;
|
165 |
+
$sortable_columns = $this->get_sortable_columns();
|
166 |
+
$orderby = SwpmUtils::sanitize_value_by_array( $orderby, $sortable_columns );
|
167 |
+
$order = SwpmUtils::sanitize_value_by_array(
|
168 |
+
$order,
|
169 |
+
array(
|
170 |
+
'DESC' => '1',
|
171 |
+
'ASC' => '1',
|
172 |
+
)
|
173 |
+
);
|
174 |
+
$query .= ' ORDER BY ' . $orderby . ' ' . $order;
|
175 |
+
|
176 |
+
//Execute the query
|
177 |
+
$totalitems = $wpdb->get_var( $count_query_head . $query );
|
178 |
+
//Pagination setup
|
179 |
+
$perpage = apply_filters( 'swpm_members_menu_items_per_page', 50 );
|
180 |
+
$paged = filter_input( INPUT_GET, 'paged' );
|
181 |
+
if ( empty( $paged ) || ! is_numeric( $paged ) || $paged <= 0 ) {
|
182 |
+
$paged = 1;
|
183 |
+
}
|
184 |
+
$totalpages = ceil( $totalitems / $perpage );
|
185 |
+
if ( ! empty( $paged ) && ! empty( $perpage ) ) {
|
186 |
+
$offset = ( $paged - 1 ) * $perpage;
|
187 |
+
$query .= ' LIMIT ' . (int) $offset . ',' . (int) $perpage;
|
188 |
+
}
|
189 |
+
$this->set_pagination_args(
|
190 |
+
array(
|
191 |
+
'total_items' => $totalitems,
|
192 |
+
'total_pages' => $totalpages,
|
193 |
+
'per_page' => $perpage,
|
194 |
+
)
|
195 |
+
);
|
196 |
+
|
197 |
+
$columns = $this->get_columns();
|
198 |
+
$hidden = array();
|
199 |
+
$sortable = $this->get_sortable_columns();
|
200 |
+
|
201 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
202 |
+
$this->items = $wpdb->get_results( $records_query_head . $query, ARRAY_A );
|
203 |
+
$this->items = apply_filters( 'swpm_admin_members_table_items', $this->items );
|
204 |
+
}
|
205 |
+
|
206 |
+
function get_user_count_by_account_state() {
|
207 |
+
global $wpdb;
|
208 |
+
$query = 'SELECT count(member_id) AS count, account_state FROM ' . $wpdb->prefix . 'swpm_members_tbl GROUP BY account_state';
|
209 |
+
$result = $wpdb->get_results( $query, ARRAY_A );
|
210 |
+
$count = array();
|
211 |
+
|
212 |
+
$all = 0;
|
213 |
+
foreach ( $result as $row ) {
|
214 |
+
$count[ $row['account_state'] ] = $row['count'];
|
215 |
+
$all += intval( $row['count'] );
|
216 |
+
}
|
217 |
+
$count ['all'] = $all;
|
218 |
+
|
219 |
+
$count_incomplete_query = 'SELECT COUNT(*) FROM ' . $wpdb->prefix . "swpm_members_tbl WHERE user_name = ''";
|
220 |
+
$count['incomplete'] = $wpdb->get_var( $count_incomplete_query );
|
221 |
+
|
222 |
+
return $count;
|
223 |
+
}
|
224 |
+
|
225 |
+
function no_items() {
|
226 |
+
_e( 'No member found.', 'simple-membership' );
|
227 |
+
}
|
228 |
+
|
229 |
+
function process_form_request() {
|
230 |
+
if ( isset( $_REQUEST['member_id'] ) ) {
|
231 |
+
//This is a member profile edit action
|
232 |
+
$record_id = sanitize_text_field( $_REQUEST['member_id'] );
|
233 |
+
if ( ! is_numeric( $record_id ) ) {
|
234 |
+
wp_die( 'Error! ID must be numeric.' );
|
235 |
+
}
|
236 |
+
return $this->edit( absint( $record_id ) );
|
237 |
+
}
|
238 |
+
|
239 |
+
//This is an profile add action.
|
240 |
+
return $this->add();
|
241 |
+
}
|
242 |
+
|
243 |
+
function add() {
|
244 |
+
$form = apply_filters( 'swpm_admin_registration_form_override', '' );
|
245 |
+
if ( ! empty( $form ) ) {
|
246 |
+
echo $form;
|
247 |
+
return;
|
248 |
+
}
|
249 |
+
global $wpdb;
|
250 |
+
$member = SwpmTransfer::$default_fields;
|
251 |
+
$member['member_since'] = SwpmUtils::get_current_date_in_wp_zone();//date( 'Y-m-d' );
|
252 |
+
$member['subscription_starts'] = SwpmUtils::get_current_date_in_wp_zone();//date( 'Y-m-d' );
|
253 |
+
if ( isset( $_POST['createswpmuser'] ) ) {
|
254 |
+
$member = array_map( 'sanitize_text_field', $_POST );
|
255 |
+
}
|
256 |
+
extract( $member, EXTR_SKIP );
|
257 |
+
$query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
|
258 |
+
$levels = $wpdb->get_results( $query, ARRAY_A );
|
259 |
+
|
260 |
+
$add_user_template_path = apply_filters('swpm_admin_registration_add_user_template_path', SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_add.php');
|
261 |
+
include_once $add_user_template_path;
|
262 |
+
|
263 |
+
return false;
|
264 |
+
}
|
265 |
+
|
266 |
+
function edit( $id ) {
|
267 |
+
global $wpdb;
|
268 |
+
$id = absint( $id );
|
269 |
+
$query = "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE member_id = $id";
|
270 |
+
$member = $wpdb->get_row( $query, ARRAY_A );
|
271 |
+
if ( isset( $_POST['editswpmuser'] ) ) {
|
272 |
+
$_POST['user_name'] = sanitize_text_field( $member['user_name'] );
|
273 |
+
$_POST['email'] = sanitize_email( $member['email'] );
|
274 |
+
foreach ( $_POST as $key => $value ) {
|
275 |
+
$key = sanitize_text_field( $key );
|
276 |
+
if ( $key == 'email' ) {
|
277 |
+
$member[ $key ] = sanitize_email( $value );
|
278 |
+
} else {
|
279 |
+
$member[ $key ] = sanitize_text_field( $value );
|
280 |
+
}
|
281 |
+
}
|
282 |
+
}
|
283 |
+
extract( $member, EXTR_SKIP );
|
284 |
+
$query = 'SELECT * FROM ' . $wpdb->prefix . 'swpm_membership_tbl WHERE id !=1 ';
|
285 |
+
$levels = $wpdb->get_results( $query, ARRAY_A );
|
286 |
+
|
287 |
+
$edit_user_template_path = apply_filters('swpm_admin_registration_edit_user_template_path', SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_edit.php');
|
288 |
+
include_once $edit_user_template_path;
|
289 |
+
|
290 |
+
return false;
|
291 |
+
}
|
292 |
+
|
293 |
+
function process_bulk_action() {
|
294 |
+
//Detect when a bulk action is being triggered... then perform the action.
|
295 |
+
$members = isset( $_REQUEST['members'] ) ? $_REQUEST['members'] : array();
|
296 |
+
$members = array_map( 'sanitize_text_field', $members );
|
297 |
+
|
298 |
+
$current_action = $this->current_action();
|
299 |
+
if ( ! empty( $current_action ) ) {
|
300 |
+
//Bulk operation action. Lets make sure multiple records were selected before going ahead.
|
301 |
+
if ( empty( $members ) ) {
|
302 |
+
echo '<div id="message" class="error"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
|
303 |
+
return;
|
304 |
+
}
|
305 |
+
} else {
|
306 |
+
//No bulk operation.
|
307 |
+
return;
|
308 |
+
}
|
309 |
+
|
310 |
+
check_admin_referer( 'swpm_bulk_action', 'swpm_bulk_action_nonce' );
|
311 |
+
|
312 |
+
//perform the bulk operation according to the selection
|
313 |
+
if ( 'bulk_delete' === $current_action ) {
|
314 |
+
foreach ( $members as $record_id ) {
|
315 |
+
if ( ! is_numeric( $record_id ) ) {
|
316 |
+
wp_die( 'Error! ID must be numeric.' );
|
317 |
+
}
|
318 |
+
self::delete_user_by_id( $record_id );
|
319 |
+
}
|
320 |
+
echo '<div id="message" class="updated fade"><p>Selected records deleted successfully!</p></div>';
|
321 |
+
return;
|
322 |
+
} elseif ( 'bulk_active' === $current_action ) {
|
323 |
+
$this->bulk_set_status( $members, 'active' );
|
324 |
+
} elseif ( 'bulk_active_notify' == $current_action ) {
|
325 |
+
$this->bulk_set_status( $members, 'active', true );
|
326 |
+
} elseif ( 'bulk_inactive' == $current_action ) {
|
327 |
+
$this->bulk_set_status( $members, 'inactive' );
|
328 |
+
} elseif ( 'bulk_pending' == $current_action ) {
|
329 |
+
$this->bulk_set_status( $members, 'pending' );
|
330 |
+
} elseif ( 'bulk_expired' == $current_action ) {
|
331 |
+
$this->bulk_set_status( $members, 'expired' );
|
332 |
+
}
|
333 |
+
|
334 |
+
echo '<div id="message" class="updated fade"><p>Bulk operation completed successfully!</p></div>';
|
335 |
+
}
|
336 |
+
|
337 |
+
function bulk_set_status( $members, $status, $notify = false ) {
|
338 |
+
$ids = implode( ',', array_map( 'absint', $members ) );
|
339 |
+
if ( empty( $ids ) ) {
|
340 |
+
return;
|
341 |
+
}
|
342 |
+
global $wpdb;
|
343 |
+
$query = 'UPDATE ' . $wpdb->prefix . 'swpm_members_tbl ' .
|
344 |
+
" SET account_state = '" . $status . "' WHERE member_id in (" . $ids . ')';
|
345 |
+
$wpdb->query( $query );
|
346 |
+
|
347 |
+
if ( $notify ) {
|
348 |
+
$settings = SwpmSettings::get_instance();
|
349 |
+
|
350 |
+
$emails = $wpdb->get_col( 'SELECT email FROM ' . $wpdb->prefix . 'swpm_members_tbl ' . " WHERE member_id IN ( $ids ) " );
|
351 |
+
|
352 |
+
$subject = $settings->get_value( 'bulk-activate-notify-mail-subject' );
|
353 |
+
if ( empty( $subject ) ) {
|
354 |
+
$subject = 'Account Activated!';
|
355 |
+
}
|
356 |
+
$body = $settings->get_value( 'bulk-activate-notify-mail-body' );
|
357 |
+
if ( empty( $body ) ) {
|
358 |
+
$body = 'Hi, Your account has been activated successfully!';
|
359 |
+
}
|
360 |
+
|
361 |
+
$from_address = $settings->get_value( 'email-from' );
|
362 |
+
$headers = 'From: ' . $from_address . "\r\n";
|
363 |
+
|
364 |
+
foreach ($emails as $to_email) {
|
365 |
+
//Send the activation email one by one to all the selected members.
|
366 |
+
$subject = apply_filters( 'swpm_email_bulk_set_status_subject', $subject );
|
367 |
+
$body = apply_filters( 'swpm_email_bulk_set_status_body', $body );
|
368 |
+
$to_email = trim($to_email);
|
369 |
+
SwpmMiscUtils::mail( $to_email, $subject, $body, $headers );
|
370 |
+
SwpmLog::log_simple_debug( 'Bulk activation email notification sent. Activation email sent to the following email: ' . $to_email, true );
|
371 |
+
}
|
372 |
+
}
|
373 |
+
}
|
374 |
+
|
375 |
+
function delete() {
|
376 |
+
if ( isset( $_REQUEST['member_id'] ) ) {
|
377 |
+
//Check we are on the admin end and user has management permission
|
378 |
+
SwpmMiscUtils::check_user_permission_and_is_admin( 'member deletion by admin' );
|
379 |
+
|
380 |
+
//Check nonce
|
381 |
+
if ( ! isset( $_REQUEST['delete_swpmuser_nonce'] ) || ! wp_verify_nonce( $_REQUEST['delete_swpmuser_nonce'], 'delete_swpmuser_admin_end' ) ) {
|
382 |
+
//Nonce check failed.
|
383 |
+
wp_die( SwpmUtils::_( 'Error! Nonce verification failed for user delete from admin end.' ) );
|
384 |
+
}
|
385 |
+
|
386 |
+
$id = sanitize_text_field( $_REQUEST['member_id'] );
|
387 |
+
$id = absint( $id );
|
388 |
+
self::delete_user_by_id( $id );
|
389 |
+
}
|
390 |
+
}
|
391 |
+
|
392 |
+
public static function delete_user_by_id( $id ) {
|
393 |
+
if ( ! is_numeric( $id ) ) {
|
394 |
+
wp_die( 'Error! Member ID must be numeric.' );
|
395 |
+
}
|
396 |
+
|
397 |
+
//Trigger action hook
|
398 |
+
do_action( 'swpm_admin_end_user_delete_action', $id );
|
399 |
+
|
400 |
+
$swpm_user = SwpmMemberUtils::get_user_by_id( $id );
|
401 |
+
$user_name = $swpm_user->user_name;
|
402 |
+
self::delete_wp_user( $user_name ); //Deletes the WP User record
|
403 |
+
self::delete_swpm_user_by_id( $id ); //Deletes the SWPM record
|
404 |
+
}
|
405 |
+
|
406 |
+
public static function delete_swpm_user_by_id( $id ) {
|
407 |
+
self::delete_user_subs( $id );
|
408 |
+
global $wpdb;
|
409 |
+
$query = 'DELETE FROM ' . $wpdb->prefix . "swpm_members_tbl WHERE member_id = $id";
|
410 |
+
$wpdb->query( $query );
|
411 |
+
}
|
412 |
+
|
413 |
+
public static function delete_wp_user( $user_name ) {
|
414 |
+
$wp_user_id = username_exists( $user_name );
|
415 |
+
if ( empty( $wp_user_id ) || ! is_numeric( $wp_user_id ) ) {
|
416 |
+
return;
|
417 |
+
}
|
418 |
+
|
419 |
+
if ( ! self::is_wp_super_user( $wp_user_id ) ) {
|
420 |
+
//Not an admin user so it is safe to delete this user.
|
421 |
+
include_once ABSPATH . 'wp-admin/includes/user.php';
|
422 |
+
wp_delete_user( $wp_user_id, 1 ); //assigns all related to this user to admin.
|
423 |
+
} else {
|
424 |
+
//This is an admin user. So not going to delete the WP User record.
|
425 |
+
SwpmTransfer::get_instance()->set( 'status', 'For safety, we do not allow deletion of any associated WordPress account with administrator role.' );
|
426 |
+
return;
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
430 |
+
private static function delete_user_subs( $id ) {
|
431 |
+
$member = SwpmMemberUtils::get_user_by_id( $id );
|
432 |
+
if ( ! $member ) {
|
433 |
+
return false;
|
434 |
+
}
|
435 |
+
// let's check if Stripe subscription needs to be cancelled
|
436 |
+
global $wpdb;
|
437 |
+
$q = $wpdb->prepare(
|
438 |
+
'SELECT *
|
439 |
+
FROM `' . $wpdb->prefix . 'swpm_payments_tbl`
|
440 |
+
WHERE email = %s
|
441 |
+
AND (gateway = "stripe" OR gateway = "stripe-sca-subs")
|
442 |
+
AND subscr_id != ""',
|
443 |
+
array( $member->email )
|
444 |
+
);
|
445 |
+
|
446 |
+
$res = $wpdb->get_results( $q, ARRAY_A );
|
447 |
+
|
448 |
+
if ( ! $res ) {
|
449 |
+
return false;
|
450 |
+
}
|
451 |
+
|
452 |
+
foreach ( $res as $sub ) {
|
453 |
+
|
454 |
+
if ( substr( $sub['subscr_id'], 0, 4 ) !== 'sub_' ) {
|
455 |
+
//not Stripe subscription
|
456 |
+
continue;
|
457 |
+
}
|
458 |
+
|
459 |
+
//let's find the payment button
|
460 |
+
$q = $wpdb->prepare( "SELECT post_id FROM {$wpdb->prefix}postmeta WHERE meta_key='subscr_id' AND meta_value=%s", $sub['subscr_id'] );
|
461 |
+
$res_post = $wpdb->get_row( $q );
|
462 |
+
|
463 |
+
if ( ! $res_post ) {
|
464 |
+
//no button found
|
465 |
+
continue;
|
466 |
+
}
|
467 |
+
|
468 |
+
$button_id = get_post_meta( $res_post->post_id, 'payment_button_id', true );
|
469 |
+
|
470 |
+
$button = get_post( $button_id );
|
471 |
+
|
472 |
+
if ( ! $button ) {
|
473 |
+
//no button found
|
474 |
+
continue;
|
475 |
+
}
|
476 |
+
|
477 |
+
SwpmLog::log_simple_debug( 'Attempting to cancel Stripe Subscription ' . $sub['subscr_id'], true );
|
478 |
+
|
479 |
+
$is_live = get_post_meta( $button_id, 'is_live', true );
|
480 |
+
|
481 |
+
//API Keys
|
482 |
+
$api_keys = SwpmMiscUtils::get_stripe_api_keys_from_payment_button( $button_id, $is_live );
|
483 |
+
|
484 |
+
//Include the Stripe library.
|
485 |
+
SwpmMiscUtils::load_stripe_lib();
|
486 |
+
|
487 |
+
\Stripe\Stripe::setApiKey( $api_keys['secret'] );
|
488 |
+
|
489 |
+
$error = null;
|
490 |
+
// Let's try to cancel subscription
|
491 |
+
try {
|
492 |
+
$sub = \Stripe\Subscription::retrieve( $sub['subscr_id'] );
|
493 |
+
$sub->cancel();
|
494 |
+
} catch ( Exception $e ) {
|
495 |
+
SwpmLog::log_simple_debug( 'Error occurred during Stripe Subscription cancellation. ' . $e->getMessage(), false );
|
496 |
+
$body = $e->getJsonBody();
|
497 |
+
$error = $body['error'];
|
498 |
+
$error_string = wp_json_encode( $error );
|
499 |
+
SwpmLog::log_simple_debug( 'Error details: ' . $error_string, false );
|
500 |
+
}
|
501 |
+
if ( ! isset( $error ) ) {
|
502 |
+
SwpmLog::log_simple_debug( 'Stripe Subscription has been cancelled.', true );
|
503 |
+
}
|
504 |
+
}
|
505 |
+
}
|
506 |
+
|
507 |
+
public static function is_wp_super_user( $wp_user_id ) {
|
508 |
+
$user_data = get_userdata( $wp_user_id );
|
509 |
+
if ( empty( $user_data ) ) {
|
510 |
+
//Not an admin user if we can't find his data for the given ID.
|
511 |
+
return false;
|
512 |
+
}
|
513 |
+
if ( isset( $user_data->wp_capabilities['administrator'] ) ) {//Check capability
|
514 |
+
//admin user
|
515 |
+
return true;
|
516 |
+
}
|
517 |
+
if ( $user_data->wp_user_level == 10 ) {//Check for old style wp user level
|
518 |
+
//admin user
|
519 |
+
return true;
|
520 |
+
}
|
521 |
+
//This is not an admin user
|
522 |
+
return false;
|
523 |
+
}
|
524 |
+
|
525 |
+
function bulk_operation_menu() {
|
526 |
+
echo '<div id="poststuff"><div id="post-body">';
|
527 |
+
|
528 |
+
if ( isset( $_REQUEST['swpm_bulk_change_level_process'] ) ) {
|
529 |
+
//Check nonce
|
530 |
+
$swpm_bulk_change_level_nonce = filter_input( INPUT_POST, 'swpm_bulk_change_level_nonce' );
|
531 |
+
if ( ! wp_verify_nonce( $swpm_bulk_change_level_nonce, 'swpm_bulk_change_level_nonce_action' ) ) {
|
532 |
+
//Nonce check failed.
|
533 |
+
wp_die( SwpmUtils::_( 'Error! Nonce security verification failed for Bulk Change Membership Level action. Clear cache and try again.' ) );
|
534 |
+
}
|
535 |
+
|
536 |
+
$errorMsg = '';
|
537 |
+
$from_level_id = sanitize_text_field( $_REQUEST['swpm_bulk_change_level_from'] );
|
538 |
+
$to_level_id = sanitize_text_field( $_REQUEST['swpm_bulk_change_level_to'] );
|
539 |
+
|
540 |
+
if ( $from_level_id == 'please_select' || $to_level_id == 'please_select' ) {
|
541 |
+
$errorMsg = SwpmUtils::_( 'Error! Please select a membership level first.' );
|
542 |
+
}
|
543 |
+
|
544 |
+
if ( empty( $errorMsg ) ) {//No validation errors so go ahead
|
545 |
+
$member_records = SwpmMemberUtils::get_all_members_of_a_level( $from_level_id );
|
546 |
+
if ( $member_records ) {
|
547 |
+
foreach ( $member_records as $row ) {
|
548 |
+
$member_id = $row->member_id;
|
549 |
+
SwpmMemberUtils::update_membership_level( $member_id, $to_level_id );
|
550 |
+
}
|
551 |
+
}
|
552 |
+
}
|
553 |
+
|
554 |
+
$message = '';
|
555 |
+
if ( ! empty( $errorMsg ) ) {
|
556 |
+
$message = $errorMsg;
|
557 |
+
} else {
|
558 |
+
$message = SwpmUtils::_( 'Membership level change operation completed successfully.' );
|
559 |
+
}
|
560 |
+
echo '<div id="message" class="updated fade"><p><strong>';
|
561 |
+
echo $message;
|
562 |
+
echo '</strong></p></div>';
|
563 |
+
}
|
564 |
+
|
565 |
+
if ( isset( $_REQUEST['swpm_bulk_user_start_date_change_process'] ) ) {
|
566 |
+
//Check nonce
|
567 |
+
$swpm_bulk_start_date_nonce = filter_input( INPUT_POST, 'swpm_bulk_start_date_nonce' );
|
568 |
+
if ( ! wp_verify_nonce( $swpm_bulk_start_date_nonce, 'swpm_bulk_start_date_nonce_action' ) ) {
|
569 |
+
//Nonce check failed.
|
570 |
+
wp_die( SwpmUtils::_( 'Error! Nonce security verification failed for Bulk Change Access Starts Date action. Clear cache and try again.' ) );
|
571 |
+
}
|
572 |
+
|
573 |
+
$errorMsg = '';
|
574 |
+
$level_id = sanitize_text_field( $_REQUEST['swpm_bulk_user_start_date_change_level'] );
|
575 |
+
$new_date = sanitize_text_field( $_REQUEST['swpm_bulk_user_start_date_change_date'] );
|
576 |
+
|
577 |
+
if ( $level_id == 'please_select' ) {
|
578 |
+
$errorMsg = SwpmUtils::_( 'Error! Please select a membership level first.' );
|
579 |
+
}
|
580 |
+
|
581 |
+
if ( empty( $errorMsg ) ) {//No validation errors so go ahead
|
582 |
+
$member_records = SwpmMemberUtils::get_all_members_of_a_level( $level_id );
|
583 |
+
if ( $member_records ) {
|
584 |
+
foreach ( $member_records as $row ) {
|
585 |
+
$member_id = $row->member_id;
|
586 |
+
SwpmMemberUtils::update_access_starts_date( $member_id, $new_date );
|
587 |
+
}
|
588 |
+
}
|
589 |
+
}
|
590 |
+
|
591 |
+
$message = '';
|
592 |
+
if ( ! empty( $errorMsg ) ) {
|
593 |
+
$message = $errorMsg;
|
594 |
+
} else {
|
595 |
+
$message = SwpmUtils::_( 'Access starts date change operation successfully completed.' );
|
596 |
+
}
|
597 |
+
echo '<div id="message" class="updated fade"><p><strong>';
|
598 |
+
echo $message;
|
599 |
+
echo '</strong></p></div>';
|
600 |
+
}
|
601 |
+
?>
|
602 |
+
|
603 |
+
<div class="postbox">
|
604 |
+
<h3 class="hndle"><label for="title"><?php SwpmUtils::e( 'Bulk Update Membership Level of Members' ); ?></label></h3>
|
605 |
+
<div class="inside">
|
606 |
+
<p>
|
607 |
+
<?php SwpmUtils::e( 'You can manually change the membership level of any member by editing the record from the members menu. ' ); ?>
|
608 |
+
<?php SwpmUtils::e( 'You can use the following option to bulk update the membership level of users who belong to the level you select below.' ); ?>
|
609 |
+
</p>
|
610 |
+
<form method="post" action="">
|
611 |
+
<input type="hidden" name="swpm_bulk_change_level_nonce" value="<?php echo wp_create_nonce( 'swpm_bulk_change_level_nonce_action' ); ?>" />
|
612 |
+
|
613 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="6">
|
614 |
+
<tr valign="top">
|
615 |
+
<td width="25%" align="left">
|
616 |
+
<strong><?php SwpmUtils::e( 'Membership Level: ' ); ?></strong>
|
617 |
+
</td>
|
618 |
+
<td align="left">
|
619 |
+
<select name="swpm_bulk_change_level_from">
|
620 |
+
<option value="please_select"><?php SwpmUtils::e( 'Select Current Level' ); ?></option>
|
621 |
+
<?php echo SwpmUtils::membership_level_dropdown(); ?>
|
622 |
+
</select>
|
623 |
+
<p class="description"><?php SwpmUtils::e( 'Select the current membership level (the membership level of all members who are in this level will be updated).' ); ?></p>
|
624 |
+
</td>
|
625 |
+
</tr>
|
626 |
+
|
627 |
+
<tr valign="top">
|
628 |
+
<td width="25%" align="left">
|
629 |
+
<strong><?php SwpmUtils::e( 'Level to Change to: ' ); ?></strong>
|
630 |
+
</td>
|
631 |
+
<td align="left">
|
632 |
+
<select name="swpm_bulk_change_level_to">
|
633 |
+
<option value="please_select"><?php SwpmUtils::e( 'Select Target Level' ); ?></option>
|
634 |
+
<?php echo SwpmUtils::membership_level_dropdown(); ?>
|
635 |
+
</select>
|
636 |
+
<p class="description"><?php SwpmUtils::e( 'Select the new membership level.' ); ?></p>
|
637 |
+
</td>
|
638 |
+
</tr>
|
639 |
+
|
640 |
+
<tr valign="top">
|
641 |
+
<td width="25%" align="left">
|
642 |
+
<input type="submit" class="button" name="swpm_bulk_change_level_process" value="<?php SwpmUtils::e( 'Bulk Change Membership Level' ); ?>" />
|
643 |
+
</td>
|
644 |
+
<td align="left"></td>
|
645 |
+
</tr>
|
646 |
+
|
647 |
+
</table>
|
648 |
+
</form>
|
649 |
+
</div></div>
|
650 |
+
|
651 |
+
<div class="postbox">
|
652 |
+
<h3 class="hndle"><label for="title"><?php SwpmUtils::e( 'Bulk Update Access Starts Date of Members' ); ?></label></h3>
|
653 |
+
<div class="inside">
|
654 |
+
|
655 |
+
<p>
|
656 |
+
<?php SwpmUtils::e( 'The access starts date of a member is set to the day the user registers. This date value is used to calculate how long the member can access your content that are protected with a duration type protection in the membership level. ' ); ?>
|
657 |
+
<?php SwpmUtils::e( 'You can manually set a specific access starts date value of all members who belong to a particular level using the following option.' ); ?>
|
658 |
+
</p>
|
659 |
+
<form method="post" action="">
|
660 |
+
<input type="hidden" name="swpm_bulk_start_date_nonce" value="<?php echo wp_create_nonce( 'swpm_bulk_start_date_nonce_action' ); ?>" />
|
661 |
+
|
662 |
+
<table width="100%" border="0" cellspacing="0" cellpadding="6">
|
663 |
+
<tr valign="top">
|
664 |
+
<td width="25%" align="left">
|
665 |
+
<strong><?php SwpmUtils::e( 'Membership Level: ' ); ?></strong>
|
666 |
+
</td><td align="left">
|
667 |
+
<select name="swpm_bulk_user_start_date_change_level">
|
668 |
+
<option value="please_select"><?php SwpmUtils::e( 'Select Level' ); ?></option>
|
669 |
+
<?php echo SwpmUtils::membership_level_dropdown(); ?>
|
670 |
+
</select>
|
671 |
+
<p class="description"><?php SwpmUtils::e( 'Select the Membership level (the access start date of all members who are in this level will be updated).' ); ?></p>
|
672 |
+
</td>
|
673 |
+
</tr>
|
674 |
+
|
675 |
+
<tr valign="top">
|
676 |
+
<td width="25%" align="left">
|
677 |
+
<strong>Access Starts Date: </strong>
|
678 |
+
</td><td align="left">
|
679 |
+
<input name="swpm_bulk_user_start_date_change_date" id="swpm_bulk_user_start_date_change_date" class="swpm-select-date" type="text" size="20" value="<?php echo ( date( 'Y-m-d' ) ); ?>" />
|
680 |
+
<p class="description"><?php SwpmUtils::e( 'Specify the Access Starts date value.' ); ?></p>
|
681 |
+
</td>
|
682 |
+
</tr>
|
683 |
+
|
684 |
+
<tr valign="top">
|
685 |
+
<td width="25%" align="left">
|
686 |
+
<input type="submit" class="button" name="swpm_bulk_user_start_date_change_process" value="<?php SwpmUtils::e( 'Bulk Change Access Starts Date' ); ?>" />
|
687 |
+
</td>
|
688 |
+
<td align="left"></td>
|
689 |
+
</tr>
|
690 |
+
|
691 |
+
</table>
|
692 |
+
</form>
|
693 |
+
</div></div>
|
694 |
+
|
695 |
+
<script>
|
696 |
+
jQuery(document).ready(function ($) {
|
697 |
+
$('#swpm_bulk_user_start_date_change_date').datepicker({dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true, yearRange: "-100:+100"});
|
698 |
+
});
|
699 |
+
</script>
|
700 |
+
<?php
|
701 |
+
echo '</div></div>'; //<!-- end of #poststuff #post-body -->
|
702 |
+
}
|
703 |
+
|
704 |
+
function show_all_members() {
|
705 |
+
ob_start();
|
706 |
+
$status = filter_input( INPUT_GET, 'status' );
|
707 |
+
include_once SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_members_list.php';
|
708 |
+
$output = ob_get_clean();
|
709 |
+
return $output;
|
710 |
+
}
|
711 |
+
|
712 |
+
function handle_main_members_admin_menu() {
|
713 |
+
do_action( 'swpm_members_menu_start' );
|
714 |
+
|
715 |
+
//Check current_user_can() or die.
|
716 |
+
SwpmMiscUtils::check_user_permission_and_is_admin( 'Main Members Admin Menu' );
|
717 |
+
|
718 |
+
$action = filter_input( INPUT_GET, 'member_action' );
|
719 |
+
$action = empty( $action ) ? filter_input( INPUT_POST, 'action' ) : $action;
|
720 |
+
$selected = $action;
|
721 |
+
?>
|
722 |
+
<div class="wrap swpm-admin-menu-wrap"><!-- start wrap -->
|
723 |
+
|
724 |
+
<h1><?php echo SwpmUtils::_( 'Simple WP Membership::Members' ); ?><!-- page title -->
|
725 |
+
<a href="admin.php?page=simple_wp_membership&member_action=add" class="add-new-h2"><?php echo SwpmUtils::_( 'Add New' ); ?></a>
|
726 |
+
</h1>
|
727 |
+
|
728 |
+
<h2 class="nav-tab-wrapper swpm-members-nav-tab-wrapper"><!-- start nav menu tabs -->
|
729 |
+
<a class="nav-tab <?php echo ( $selected == '' ) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership"><?php echo SwpmUtils::_( 'Members' ); ?></a>
|
730 |
+
<a class="nav-tab <?php echo ( $selected == 'add' ) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership&member_action=add"><?php echo SwpmUtils::_( 'Add Member' ); ?></a>
|
731 |
+
<a class="nav-tab <?php echo ( $selected == 'bulk' ) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership&member_action=bulk"><?php echo SwpmUtils::_( 'Bulk Operation' ); ?></a>
|
732 |
+
<?php
|
733 |
+
if ( $selected == 'edit' ) {//Only show the "edit member" tab when a member profile is being edited from the admin side.
|
734 |
+
echo '<a class="nav-tab nav-tab-active" href="#">Edit Member</a>';
|
735 |
+
}
|
736 |
+
|
737 |
+
//Trigger hooks that allows an extension to add extra nav tabs in the members menu.
|
738 |
+
do_action( 'swpm_members_menu_nav_tabs', $selected );
|
739 |
+
|
740 |
+
$menu_tabs = apply_filters( 'swpm_members_additional_menu_tabs_array', array() );
|
741 |
+
foreach ( $menu_tabs as $member_action => $title ) {
|
742 |
+
?>
|
743 |
+
<a class="nav-tab <?php echo ( $selected == $member_action ) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership&member_action=<?php echo $member_action; ?>" ><?php SwpmUtils::e( $title ); ?></a>
|
744 |
+
<?php
|
745 |
+
}
|
746 |
+
?>
|
747 |
+
</h2><!-- end nav menu tabs -->
|
748 |
+
<?php
|
749 |
+
do_action( 'swpm_members_menu_after_nav_tabs' );
|
750 |
+
|
751 |
+
//Trigger hook so anyone listening for this particular action can handle the output.
|
752 |
+
do_action( 'swpm_members_menu_body_' . $action );
|
753 |
+
|
754 |
+
//Allows an addon to completely override the body section of the members admin menu for a given action.
|
755 |
+
$output = apply_filters( 'swpm_members_menu_body_override', '', $action );
|
756 |
+
if ( ! empty( $output ) ) {
|
757 |
+
//An addon has overriden the body of this page for the given action. So no need to do anything in core.
|
758 |
+
echo $output;
|
759 |
+
echo '</div>'; //<!-- end of wrap -->
|
760 |
+
return;
|
761 |
+
}
|
762 |
+
|
763 |
+
//Switch case for the various different actions handled by the core plugin.
|
764 |
+
switch ( $action ) {
|
765 |
+
case 'members_list':
|
766 |
+
//Show the members listing
|
767 |
+
echo $this->show_all_members();
|
768 |
+
break;
|
769 |
+
case 'add':
|
770 |
+
//Process member profile add
|
771 |
+
$this->process_form_request();
|
772 |
+
break;
|
773 |
+
case 'edit':
|
774 |
+
//Process member profile edit
|
775 |
+
$this->process_form_request();
|
776 |
+
break;
|
777 |
+
case 'bulk':
|
778 |
+
//Handle the bulk operation menu
|
779 |
+
$this->bulk_operation_menu();
|
780 |
+
break;
|
781 |
+
default:
|
782 |
+
//Show the members listing page by default.
|
783 |
+
echo $this->show_all_members();
|
784 |
+
break;
|
785 |
+
}
|
786 |
+
|
787 |
+
echo '</div>'; //<!-- end of wrap -->
|
788 |
+
}
|
789 |
+
|
790 |
+
}
|
791 |
+
|
classes/class.swpm-membership-levels.php
CHANGED
@@ -1,331 +1,335 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if (!class_exists('WP_List_Table')){
|
4 |
-
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
5 |
-
}
|
6 |
-
|
7 |
-
class SwpmMembershipLevels extends WP_List_Table {
|
8 |
-
|
9 |
-
function __construct() {
|
10 |
-
parent::__construct(array(
|
11 |
-
'singular' => SwpmUtils::_('Membership Level'),
|
12 |
-
'plural' => SwpmUtils::_('Membership Levels'),
|
13 |
-
'ajax' => false
|
14 |
-
));
|
15 |
-
}
|
16 |
-
|
17 |
-
function get_columns() {
|
18 |
-
return array(
|
19 |
-
'cb' => '<input type="checkbox" />'
|
20 |
-
, 'id' => SwpmUtils::_('ID')
|
21 |
-
, 'alias' => SwpmUtils::_('Membership Level')
|
22 |
-
, 'role' => SwpmUtils::_('Role')
|
23 |
-
, 'valid_for' => SwpmUtils::_('Access Valid For/Until')
|
24 |
-
);
|
25 |
-
}
|
26 |
-
|
27 |
-
function get_sortable_columns() {
|
28 |
-
return array(
|
29 |
-
'id' => array('id', true),
|
30 |
-
'alias' => array('alias', true)
|
31 |
-
);
|
32 |
-
}
|
33 |
-
|
34 |
-
function get_bulk_actions() {
|
35 |
-
$actions = array(
|
36 |
-
'bulk_delete' => SwpmUtils::_('Delete')
|
37 |
-
);
|
38 |
-
return $actions;
|
39 |
-
}
|
40 |
-
|
41 |
-
function column_default($item, $column_name) {
|
42 |
-
if ($column_name == 'valid_for') {
|
43 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::NO_EXPIRY) {
|
44 |
-
return 'No Expiry';
|
45 |
-
}
|
46 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::FIXED_DATE) {
|
47 |
-
$formatted_date = SwpmUtils::get_formatted_date_according_to_wp_settings($item['subscription_period']);
|
48 |
-
return $formatted_date;
|
49 |
-
}
|
50 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::DAYS) {
|
51 |
-
return $item['subscription_period'] . " Day(s)";
|
52 |
-
}
|
53 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::WEEKS) {
|
54 |
-
return $item['subscription_period'] . " Week(s)";
|
55 |
-
}
|
56 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::MONTHS) {
|
57 |
-
return $item['subscription_period'] . " Month(s)";
|
58 |
-
}
|
59 |
-
if ($item['subscription_duration_type'] == SwpmMembershipLevel::YEARS) {
|
60 |
-
return $item['subscription_period'] . " Year(s)";
|
61 |
-
}
|
62 |
-
}
|
63 |
-
if ($column_name == 'role') {
|
64 |
-
return ucfirst($item['role']);
|
65 |
-
}
|
66 |
-
return stripslashes($item[$column_name]);
|
67 |
-
}
|
68 |
-
|
69 |
-
function column_id($item) {
|
70 |
-
$delete_swpmlevel_nonce = wp_create_nonce( 'nonce_delete_swpmlevel_admin_end' );
|
71 |
-
|
72 |
-
$actions = array(
|
73 |
-
'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=edit&id=%s">Edit</a>', $item['id']),
|
74 |
-
'delete' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=delete&id=%s&delete_swpmlevel_nonce=%s" onclick="return confirm(\'Are you sure you want to delete this entry?\')">Delete</a>', $item['id'],$delete_swpmlevel_nonce),
|
75 |
-
);
|
76 |
-
return $item['id'] . $this->row_actions($actions);
|
77 |
-
}
|
78 |
-
|
79 |
-
function column_cb($item) {
|
80 |
-
return sprintf(
|
81 |
-
'<input type="checkbox" name="ids[]" value="%s" />', $item['id']
|
82 |
-
);
|
83 |
-
}
|
84 |
-
|
85 |
-
function prepare_items() {
|
86 |
-
global $wpdb;
|
87 |
-
|
88 |
-
$this->process_bulk_action();
|
89 |
-
|
90 |
-
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
|
91 |
-
if (isset($_POST['s'])){
|
92 |
-
$search_keyword = sanitize_text_field($_POST['s']);
|
93 |
-
$search_keyword = esc_attr ($search_keyword);
|
94 |
-
$query .= " AND alias LIKE '%" . $search_keyword . "%' ";
|
95 |
-
}
|
96 |
-
|
97 |
-
//Read and sanitize the sort inputs.
|
98 |
-
$orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
|
99 |
-
$order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
|
100 |
-
|
101 |
-
$sortable_columns = $this->get_sortable_columns();
|
102 |
-
$orderby = SwpmUtils::sanitize_value_by_array($orderby, $sortable_columns);
|
103 |
-
$order = SwpmUtils::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
|
104 |
-
|
105 |
-
if (!empty($orderby) && !empty($order)) {
|
106 |
-
$query.=' ORDER BY ' . $orderby . ' ' . $order;
|
107 |
-
}
|
108 |
-
|
109 |
-
$totalitems = $wpdb->query($query); //Return the total number of affected rows
|
110 |
-
$perpage = 50;
|
111 |
-
$paged = !empty($_GET["paged"]) ? sanitize_text_field($_GET["paged"]) : '';
|
112 |
-
if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
|
113 |
-
$paged = 1;
|
114 |
-
}
|
115 |
-
$totalpages = ceil($totalitems / $perpage);
|
116 |
-
if (!empty($paged) && !empty($perpage)) {
|
117 |
-
$offset = ($paged - 1) * $perpage;
|
118 |
-
$query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
|
119 |
-
}
|
120 |
-
$this->set_pagination_args(array(
|
121 |
-
"total_items" => $totalitems,
|
122 |
-
"total_pages" => $totalpages,
|
123 |
-
"per_page" => $perpage,
|
124 |
-
));
|
125 |
-
|
126 |
-
$columns = $this->get_columns();
|
127 |
-
$hidden = array();
|
128 |
-
$sortable = $this->get_sortable_columns();
|
129 |
-
|
130 |
-
$this->_column_headers = array($columns, $hidden, $sortable);
|
131 |
-
$this->items = $wpdb->get_results($query, ARRAY_A);
|
132 |
-
}
|
133 |
-
|
134 |
-
function no_items() {
|
135 |
-
SwpmUtils::e('No membership levels found.');
|
136 |
-
}
|
137 |
-
|
138 |
-
function process_form_request() {
|
139 |
-
if (isset($_REQUEST['id'])) {
|
140 |
-
//This is a level edit action
|
141 |
-
$record_id = sanitize_text_field($_REQUEST['id']);
|
142 |
-
if(!is_numeric($record_id)){
|
143 |
-
wp_die('Error! ID must be numeric.');
|
144 |
-
}
|
145 |
-
return $this->edit($record_id);
|
146 |
-
}
|
147 |
-
|
148 |
-
//Level add action
|
149 |
-
return $this->add();
|
150 |
-
}
|
151 |
-
|
152 |
-
function add() {
|
153 |
-
//Level add interface
|
154 |
-
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_add_level.php');
|
155 |
-
return false;
|
156 |
-
}
|
157 |
-
|
158 |
-
function edit($id) {
|
159 |
-
global $wpdb;
|
160 |
-
$query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}swpm_membership_tbl WHERE id = %d", absint($id));
|
161 |
-
$membership = $wpdb->get_row($query, ARRAY_A);
|
162 |
-
extract($membership, EXTR_SKIP);
|
163 |
-
$email_activation = get_option('swpm_email_activation_lvl_'.$id);
|
164 |
-
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_edit_level.php');
|
165 |
-
return false;
|
166 |
-
}
|
167 |
-
|
168 |
-
function process_bulk_action() {
|
169 |
-
//Detect when a bulk action is being triggered...
|
170 |
-
global $wpdb;
|
171 |
-
|
172 |
-
if ('bulk_delete' === $this->current_action()) {
|
173 |
-
$records_to_delete = array_map( 'sanitize_text_field', $_REQUEST['ids'] );
|
174 |
-
if (empty($records_to_delete)) {
|
175 |
-
echo '<div id="message" class="updated fade"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
|
176 |
-
return;
|
177 |
-
}
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
<
|
228 |
-
|
229 |
-
</
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
}
|
236 |
-
|
237 |
-
function
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
<a class="nav-tab <?php echo ($selected == "
|
274 |
-
<?php
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
case '
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!class_exists('WP_List_Table')){
|
4 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
|
5 |
+
}
|
6 |
+
|
7 |
+
class SwpmMembershipLevels extends WP_List_Table {
|
8 |
+
|
9 |
+
function __construct() {
|
10 |
+
parent::__construct(array(
|
11 |
+
'singular' => SwpmUtils::_('Membership Level'),
|
12 |
+
'plural' => SwpmUtils::_('Membership Levels'),
|
13 |
+
'ajax' => false
|
14 |
+
));
|
15 |
+
}
|
16 |
+
|
17 |
+
function get_columns() {
|
18 |
+
return array(
|
19 |
+
'cb' => '<input type="checkbox" />'
|
20 |
+
, 'id' => SwpmUtils::_('ID')
|
21 |
+
, 'alias' => SwpmUtils::_('Membership Level')
|
22 |
+
, 'role' => SwpmUtils::_('Role')
|
23 |
+
, 'valid_for' => SwpmUtils::_('Access Valid For/Until')
|
24 |
+
);
|
25 |
+
}
|
26 |
+
|
27 |
+
function get_sortable_columns() {
|
28 |
+
return array(
|
29 |
+
'id' => array('id', true),
|
30 |
+
'alias' => array('alias', true)
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
function get_bulk_actions() {
|
35 |
+
$actions = array(
|
36 |
+
'bulk_delete' => SwpmUtils::_('Delete')
|
37 |
+
);
|
38 |
+
return $actions;
|
39 |
+
}
|
40 |
+
|
41 |
+
function column_default($item, $column_name) {
|
42 |
+
if ($column_name == 'valid_for') {
|
43 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::NO_EXPIRY) {
|
44 |
+
return 'No Expiry';
|
45 |
+
}
|
46 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::FIXED_DATE) {
|
47 |
+
$formatted_date = SwpmUtils::get_formatted_date_according_to_wp_settings($item['subscription_period']);
|
48 |
+
return $formatted_date;
|
49 |
+
}
|
50 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::DAYS) {
|
51 |
+
return $item['subscription_period'] . " Day(s)";
|
52 |
+
}
|
53 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::WEEKS) {
|
54 |
+
return $item['subscription_period'] . " Week(s)";
|
55 |
+
}
|
56 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::MONTHS) {
|
57 |
+
return $item['subscription_period'] . " Month(s)";
|
58 |
+
}
|
59 |
+
if ($item['subscription_duration_type'] == SwpmMembershipLevel::YEARS) {
|
60 |
+
return $item['subscription_period'] . " Year(s)";
|
61 |
+
}
|
62 |
+
}
|
63 |
+
if ($column_name == 'role') {
|
64 |
+
return ucfirst($item['role']);
|
65 |
+
}
|
66 |
+
return stripslashes($item[$column_name]);
|
67 |
+
}
|
68 |
+
|
69 |
+
function column_id($item) {
|
70 |
+
$delete_swpmlevel_nonce = wp_create_nonce( 'nonce_delete_swpmlevel_admin_end' );
|
71 |
+
|
72 |
+
$actions = array(
|
73 |
+
'edit' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=edit&id=%s">Edit</a>', $item['id']),
|
74 |
+
'delete' => sprintf('<a href="admin.php?page=simple_wp_membership_levels&level_action=delete&id=%s&delete_swpmlevel_nonce=%s" onclick="return confirm(\'Are you sure you want to delete this entry?\')">Delete</a>', $item['id'],$delete_swpmlevel_nonce),
|
75 |
+
);
|
76 |
+
return $item['id'] . $this->row_actions($actions);
|
77 |
+
}
|
78 |
+
|
79 |
+
function column_cb($item) {
|
80 |
+
return sprintf(
|
81 |
+
'<input type="checkbox" name="ids[]" value="%s" />', $item['id']
|
82 |
+
);
|
83 |
+
}
|
84 |
+
|
85 |
+
function prepare_items() {
|
86 |
+
global $wpdb;
|
87 |
+
|
88 |
+
$this->process_bulk_action();
|
89 |
+
|
90 |
+
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
|
91 |
+
if (isset($_POST['s'])){
|
92 |
+
$search_keyword = sanitize_text_field($_POST['s']);
|
93 |
+
$search_keyword = esc_attr ($search_keyword);
|
94 |
+
$query .= " AND alias LIKE '%" . $search_keyword . "%' ";
|
95 |
+
}
|
96 |
+
|
97 |
+
//Read and sanitize the sort inputs.
|
98 |
+
$orderby = !empty($_GET["orderby"]) ? esc_sql($_GET["orderby"]) : 'id';
|
99 |
+
$order = !empty($_GET["order"]) ? esc_sql($_GET["order"]) : 'DESC';
|
100 |
+
|
101 |
+
$sortable_columns = $this->get_sortable_columns();
|
102 |
+
$orderby = SwpmUtils::sanitize_value_by_array($orderby, $sortable_columns);
|
103 |
+
$order = SwpmUtils::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
|
104 |
+
|
105 |
+
if (!empty($orderby) && !empty($order)) {
|
106 |
+
$query.=' ORDER BY ' . $orderby . ' ' . $order;
|
107 |
+
}
|
108 |
+
|
109 |
+
$totalitems = $wpdb->query($query); //Return the total number of affected rows
|
110 |
+
$perpage = 50;
|
111 |
+
$paged = !empty($_GET["paged"]) ? sanitize_text_field($_GET["paged"]) : '';
|
112 |
+
if (empty($paged) || !is_numeric($paged) || $paged <= 0) {
|
113 |
+
$paged = 1;
|
114 |
+
}
|
115 |
+
$totalpages = ceil($totalitems / $perpage);
|
116 |
+
if (!empty($paged) && !empty($perpage)) {
|
117 |
+
$offset = ($paged - 1) * $perpage;
|
118 |
+
$query.=' LIMIT ' . (int) $offset . ',' . (int) $perpage;
|
119 |
+
}
|
120 |
+
$this->set_pagination_args(array(
|
121 |
+
"total_items" => $totalitems,
|
122 |
+
"total_pages" => $totalpages,
|
123 |
+
"per_page" => $perpage,
|
124 |
+
));
|
125 |
+
|
126 |
+
$columns = $this->get_columns();
|
127 |
+
$hidden = array();
|
128 |
+
$sortable = $this->get_sortable_columns();
|
129 |
+
|
130 |
+
$this->_column_headers = array($columns, $hidden, $sortable);
|
131 |
+
$this->items = $wpdb->get_results($query, ARRAY_A);
|
132 |
+
}
|
133 |
+
|
134 |
+
function no_items() {
|
135 |
+
SwpmUtils::e('No membership levels found.');
|
136 |
+
}
|
137 |
+
|
138 |
+
function process_form_request() {
|
139 |
+
if (isset($_REQUEST['id'])) {
|
140 |
+
//This is a level edit action
|
141 |
+
$record_id = sanitize_text_field($_REQUEST['id']);
|
142 |
+
if(!is_numeric($record_id)){
|
143 |
+
wp_die('Error! ID must be numeric.');
|
144 |
+
}
|
145 |
+
return $this->edit($record_id);
|
146 |
+
}
|
147 |
+
|
148 |
+
//Level add action
|
149 |
+
return $this->add();
|
150 |
+
}
|
151 |
+
|
152 |
+
function add() {
|
153 |
+
//Level add interface
|
154 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_add_level.php');
|
155 |
+
return false;
|
156 |
+
}
|
157 |
+
|
158 |
+
function edit($id) {
|
159 |
+
global $wpdb;
|
160 |
+
$query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}swpm_membership_tbl WHERE id = %d", absint($id));
|
161 |
+
$membership = $wpdb->get_row($query, ARRAY_A);
|
162 |
+
extract($membership, EXTR_SKIP);
|
163 |
+
$email_activation = get_option('swpm_email_activation_lvl_'.$id);
|
164 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_edit_level.php');
|
165 |
+
return false;
|
166 |
+
}
|
167 |
+
|
168 |
+
function process_bulk_action() {
|
169 |
+
//Detect when a bulk action is being triggered...
|
170 |
+
global $wpdb;
|
171 |
+
|
172 |
+
if ('bulk_delete' === $this->current_action()) {
|
173 |
+
$records_to_delete = array_map( 'sanitize_text_field', $_REQUEST['ids'] );
|
174 |
+
if (empty($records_to_delete)) {
|
175 |
+
echo '<div id="message" class="updated fade"><p>Error! You need to select multiple records to perform a bulk action!</p></div>';
|
176 |
+
return;
|
177 |
+
}
|
178 |
+
|
179 |
+
$action = 'bulk-' . $this->_args['plural'];
|
180 |
+
check_admin_referer( $action );
|
181 |
+
|
182 |
+
foreach ($records_to_delete as $record_id) {
|
183 |
+
if( !is_numeric( $record_id )){
|
184 |
+
wp_die('Error! ID must be numeric.');
|
185 |
+
}
|
186 |
+
$query = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = %d", $record_id);
|
187 |
+
$wpdb->query($query);
|
188 |
+
}
|
189 |
+
echo '<div id="message" class="updated fade"><p>Selected records deleted successfully!</p></div>';
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
function delete_level() {
|
194 |
+
global $wpdb;
|
195 |
+
if (isset($_REQUEST['id'])) {
|
196 |
+
|
197 |
+
//Check we are on the admin end and user has management permission
|
198 |
+
SwpmMiscUtils::check_user_permission_and_is_admin('membership level delete');
|
199 |
+
|
200 |
+
//Check nonce
|
201 |
+
if ( !isset($_REQUEST['delete_swpmlevel_nonce']) || !wp_verify_nonce($_REQUEST['delete_swpmlevel_nonce'], 'nonce_delete_swpmlevel_admin_end' )){
|
202 |
+
//Nonce check failed.
|
203 |
+
wp_die(SwpmUtils::_("Error! Nonce verification failed for membership level delete from admin end."));
|
204 |
+
}
|
205 |
+
|
206 |
+
$id = sanitize_text_field($_REQUEST['id']);
|
207 |
+
$id = absint($id);
|
208 |
+
$query = $wpdb->prepare("DELETE FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id = %d", $id);
|
209 |
+
$wpdb->query($query);
|
210 |
+
echo '<div id="message" class="updated fade"><p>Selected record deleted successfully!</p></div>';
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
function show_levels() {
|
215 |
+
?>
|
216 |
+
<div class="swpm-margin-top-10"></div>
|
217 |
+
<form method="post">
|
218 |
+
<p class="search-box">
|
219 |
+
<label class="screen-reader-text" for="search_id-search-input">
|
220 |
+
search:</label>
|
221 |
+
<input id="search_id-search-input" type="text" name="s" value="" />
|
222 |
+
<input id="search-submit" class="button" type="submit" name="" value="<?php echo SwpmUtils::_('Search')?>" />
|
223 |
+
</p>
|
224 |
+
</form>
|
225 |
+
|
226 |
+
<?php $this->prepare_items(); ?>
|
227 |
+
<form method="post">
|
228 |
+
<?php $this->display(); ?>
|
229 |
+
</form>
|
230 |
+
|
231 |
+
<p>
|
232 |
+
<a href="admin.php?page=simple_wp_membership_levels&level_action=add" class="button-primary"><?php SwpmUtils::e('Add New') ?></a>
|
233 |
+
</p>
|
234 |
+
<?php
|
235 |
+
}
|
236 |
+
|
237 |
+
function manage() {
|
238 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_membership_manage.php');
|
239 |
+
}
|
240 |
+
|
241 |
+
function manage_categroy() {
|
242 |
+
$selected = "category_list";
|
243 |
+
include_once('class.swpm-category-list.php');
|
244 |
+
$category_list = new SwpmCategoryList();
|
245 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_category_list.php');
|
246 |
+
}
|
247 |
+
|
248 |
+
function manage_post() {
|
249 |
+
$selected = "post_list";
|
250 |
+
include_once('class.swpm-post-list.php');
|
251 |
+
$post_list = new SwpmPostList();
|
252 |
+
include_once(SIMPLE_WP_MEMBERSHIP_PATH . 'views/admin_post_list.php');
|
253 |
+
}
|
254 |
+
|
255 |
+
function handle_main_membership_level_admin_menu(){
|
256 |
+
do_action( 'swpm_membership_level_menu_start' );
|
257 |
+
|
258 |
+
//Check current_user_can() or die.
|
259 |
+
SwpmMiscUtils::check_user_permission_and_is_admin('Main Membership Level Admin Menu');
|
260 |
+
|
261 |
+
$level_action = filter_input(INPUT_GET, 'level_action');
|
262 |
+
$action = $level_action;
|
263 |
+
$selected= $action;
|
264 |
+
|
265 |
+
?>
|
266 |
+
<div class="wrap swpm-admin-menu-wrap"><!-- start wrap -->
|
267 |
+
|
268 |
+
<!-- page title -->
|
269 |
+
<h1><?php echo SwpmUtils::_('Simple WP Membership::Membership Levels') ?></h1>
|
270 |
+
|
271 |
+
<!-- start nav menu tabs -->
|
272 |
+
<h2 class="nav-tab-wrapper">
|
273 |
+
<a class="nav-tab <?php echo ($selected == "") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels"><?php echo SwpmUtils::_('Membership Levels') ?></a>
|
274 |
+
<a class="nav-tab <?php echo ($selected == "add") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=add"><?php echo SwpmUtils::_('Add Level') ?></a>
|
275 |
+
<a class="nav-tab <?php echo ($selected == "manage") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=manage"><?php echo SwpmUtils::_('Manage Content Protection') ?></a>
|
276 |
+
<a class="nav-tab <?php echo ($selected == "category_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=category_list"><?php echo SwpmUtils::_('Category Protection') ?></a>
|
277 |
+
<a class="nav-tab <?php echo ($selected == "post_list") ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=post_list"><?php echo SwpmUtils::_('Post and Page Protection') ?></a>
|
278 |
+
<?php
|
279 |
+
|
280 |
+
//Trigger hooks that allows an extension to add extra nav tabs in the membership levels menu.
|
281 |
+
do_action ('swpm_membership_levels_menu_nav_tabs', $selected);
|
282 |
+
|
283 |
+
$menu_tabs = apply_filters('swpm_membership_levels_additional_menu_tabs_array', array());
|
284 |
+
foreach ($menu_tabs as $level_action => $title){
|
285 |
+
?>
|
286 |
+
<a class="nav-tab <?php echo ($selected == $member_action) ? 'nav-tab-active' : ''; ?>" href="admin.php?page=simple_wp_membership_levels&level_action=<?php echo $level_action; ?>" ><?php SwpmUtils::e($title); ?></a>
|
287 |
+
<?php
|
288 |
+
}
|
289 |
+
|
290 |
+
?>
|
291 |
+
</h2>
|
292 |
+
<!-- end nav menu tabs -->
|
293 |
+
|
294 |
+
<?php
|
295 |
+
|
296 |
+
do_action( 'swpm_membership_level_menu_after_nav_tabs' );
|
297 |
+
|
298 |
+
//Trigger hook so anyone listening for this particular action can handle the output.
|
299 |
+
do_action( 'swpm_membership_level_menu_body_' . $action );
|
300 |
+
|
301 |
+
//Allows an addon to completely override the body section of the membership level admin menu for a given action.
|
302 |
+
$output = apply_filters('swpm_membership_level_menu_body_override', '', $action);
|
303 |
+
if (!empty($output)) {
|
304 |
+
//An addon has overriden the body of this page for the given action. So no need to do anything in core.
|
305 |
+
echo $output;
|
306 |
+
echo '</div>';//<!-- end of wrap -->
|
307 |
+
return;
|
308 |
+
}
|
309 |
+
|
310 |
+
//Switch case for the various different actions handled by the core plugin.
|
311 |
+
switch ($action) {
|
312 |
+
case 'add':
|
313 |
+
case 'edit':
|
314 |
+
$this->process_form_request();
|
315 |
+
break;
|
316 |
+
case 'manage':
|
317 |
+
$this->manage();
|
318 |
+
break;
|
319 |
+
case 'category_list':
|
320 |
+
$this->manage_categroy();
|
321 |
+
break;
|
322 |
+
case 'post_list':
|
323 |
+
$this->manage_post();
|
324 |
+
break;
|
325 |
+
case 'delete':
|
326 |
+
$this->delete_level();
|
327 |
+
default:
|
328 |
+
$this->show_levels();
|
329 |
+
break;
|
330 |
+
}
|
331 |
+
|
332 |
+
echo '</div>';//<!-- end of wrap -->
|
333 |
+
}
|
334 |
+
|
335 |
+
}
|
classes/class.swpm-settings.php
CHANGED
@@ -16,6 +16,23 @@ class SwpmSettings {
|
|
16 |
//It sets up the various tabs and the fields for the settings admin page.
|
17 |
|
18 |
if ( is_admin() ) { // for frontend just load settings but dont try to render settings page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
//Read the value of tab query arg.
|
20 |
$tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 1;
|
21 |
$this->current_tab = empty( $tab ) ? 1 : $tab;
|
@@ -210,12 +227,39 @@ class SwpmSettings {
|
|
210 |
|
211 |
add_settings_section( 'debug-settings', SwpmUtils::_( 'Test & Debug Settings' ), array( &$this, 'testndebug_settings_callback' ), 'simple_wp_membership_settings' );
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
$debug_field_help_text = SwpmUtils::_( 'Check this option to enable debug logging.' );
|
214 |
$debug_field_help_text .= SwpmUtils::_( ' This can be useful when troubleshooting an issue. Turn it off and reset the log files after the troubleshooting is complete.' );
|
215 |
$debug_field_help_text .= '<br />';
|
216 |
-
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'View general debug log file by clicking ' ) . '<a href="' .
|
217 |
-
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'View login related debug log file by clicking ' ) . '<a href="' .
|
218 |
-
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'Reset debug log files by clicking ' ) . '<a href="
|
219 |
add_settings_field(
|
220 |
'enable-debug',
|
221 |
SwpmUtils::_( 'Enable Debug' ),
|
@@ -932,7 +976,8 @@ class SwpmSettings {
|
|
932 |
|
933 |
public function swpm_general_post_submit_check_callback() {
|
934 |
//Log file reset handler
|
935 |
-
if ( isset( $_REQUEST['
|
|
|
936 |
if ( SwpmLog::reset_swmp_log_files() ) {
|
937 |
echo '<div id="message" class="updated fade"><p>Debug log files have been reset!</p></div>';
|
938 |
} else {
|
16 |
//It sets up the various tabs and the fields for the settings admin page.
|
17 |
|
18 |
if ( is_admin() ) { // for frontend just load settings but dont try to render settings page.
|
19 |
+
//Handle view log request
|
20 |
+
$view_log_type = filter_input( INPUT_GET, 'swpm_view_log', FILTER_SANITIZE_STRING );
|
21 |
+
if ( ! empty( $view_log_type ) ) {
|
22 |
+
switch ( $view_log_type ) {
|
23 |
+
case 'd':
|
24 |
+
check_admin_referer( 'swpm_view_debug_log' );
|
25 |
+
break;
|
26 |
+
case 'a':
|
27 |
+
check_admin_referer( 'swpm_view_auth_log' );
|
28 |
+
break;
|
29 |
+
default:
|
30 |
+
break;
|
31 |
+
}
|
32 |
+
|
33 |
+
SwpmLog::output_log( $view_log_type );
|
34 |
+
}
|
35 |
+
|
36 |
//Read the value of tab query arg.
|
37 |
$tab = isset( $_REQUEST['tab'] ) ? sanitize_text_field( $_REQUEST['tab'] ) : 1;
|
38 |
$this->current_tab = empty( $tab ) ? 1 : $tab;
|
227 |
|
228 |
add_settings_section( 'debug-settings', SwpmUtils::_( 'Test & Debug Settings' ), array( &$this, 'testndebug_settings_callback' ), 'simple_wp_membership_settings' );
|
229 |
|
230 |
+
$debug_log_url = add_query_arg(
|
231 |
+
array(
|
232 |
+
'page' => 'simple_wp_membership_settings',
|
233 |
+
'swpm_view_log' => 'd',
|
234 |
+
'_wpnonce' => wp_create_nonce( 'swpm_view_debug_log' ),
|
235 |
+
),
|
236 |
+
admin_url( 'admin.php' )
|
237 |
+
);
|
238 |
+
|
239 |
+
$auth_log_url = add_query_arg(
|
240 |
+
array(
|
241 |
+
'page' => 'simple_wp_membership_settings',
|
242 |
+
'swpm_view_log' => 'a',
|
243 |
+
'_wpnonce' => wp_create_nonce( 'swpm_view_auth_log' ),
|
244 |
+
),
|
245 |
+
admin_url( 'admin.php' )
|
246 |
+
);
|
247 |
+
|
248 |
+
$reset_log_url = add_query_arg(
|
249 |
+
array(
|
250 |
+
'page' => 'simple_wp_membership_settings',
|
251 |
+
'swpm_reset_log' => '1',
|
252 |
+
'_wpnonce' => wp_create_nonce( 'swpm_reset_log' ),
|
253 |
+
),
|
254 |
+
admin_url( 'admin.php' )
|
255 |
+
);
|
256 |
+
|
257 |
$debug_field_help_text = SwpmUtils::_( 'Check this option to enable debug logging.' );
|
258 |
$debug_field_help_text .= SwpmUtils::_( ' This can be useful when troubleshooting an issue. Turn it off and reset the log files after the troubleshooting is complete.' );
|
259 |
$debug_field_help_text .= '<br />';
|
260 |
+
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'View general debug log file by clicking ' ) . '<a href="' . $debug_log_url . '" target="_blank">' . SwpmUtils::_( 'here' ) . '</a>.';
|
261 |
+
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'View login related debug log file by clicking ' ) . '<a href="' . $auth_log_url . '" target="_blank">' . SwpmUtils::_( 'here' ) . '</a>.';
|
262 |
+
$debug_field_help_text .= '<br />- ' . SwpmUtils::_( 'Reset debug log files by clicking ' ) . '<a href="' . $reset_log_url . '" target="_blank">' . SwpmUtils::_( 'here' ) . '</a>.';
|
263 |
add_settings_field(
|
264 |
'enable-debug',
|
265 |
SwpmUtils::_( 'Enable Debug' ),
|
976 |
|
977 |
public function swpm_general_post_submit_check_callback() {
|
978 |
//Log file reset handler
|
979 |
+
if ( isset( $_REQUEST['swpm_reset_log'] ) ) {
|
980 |
+
check_admin_referer( 'swpm_reset_log' );
|
981 |
if ( SwpmLog::reset_swmp_log_files() ) {
|
982 |
echo '<div id="message" class="updated fade"><p>Debug log files have been reset!</p></div>';
|
983 |
} else {
|
classes/class.swpm-utils-member.php
CHANGED
@@ -257,12 +257,47 @@ class SwpmMemberUtils {
|
|
257 |
}
|
258 |
}
|
259 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
public static function wp_user_has_admin_role( $wp_user_id ) {
|
261 |
$caps = get_user_meta( $wp_user_id, 'wp_capabilities', true );
|
262 |
if ( is_array( $caps ) && in_array( 'administrator', array_keys( (array) $caps ) ) ) {
|
263 |
-
|
264 |
-
|
265 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
return false;
|
267 |
}
|
268 |
|
257 |
}
|
258 |
}
|
259 |
|
260 |
+
/**
|
261 |
+
* Get wp user roles by user ID.
|
262 |
+
*
|
263 |
+
* @param int $id
|
264 |
+
* @return array
|
265 |
+
*/
|
266 |
+
public static function get_wp_user_roles_by_id( $wp_user_id )
|
267 |
+
{
|
268 |
+
$user = new WP_User( $wp_user_id );
|
269 |
+
if ( empty ( $user->roles ) or ! is_array( $user->roles ) ){
|
270 |
+
return array ();
|
271 |
+
}
|
272 |
+
$wp_roles = new WP_Roles;
|
273 |
+
$names = $wp_roles->get_names();
|
274 |
+
$out = array ();
|
275 |
+
foreach ( $user->roles as $role ) {
|
276 |
+
if ( isset ( $names[ $role ] ) ){
|
277 |
+
$out[ $role ] = $names[ $role ];
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
return $out;
|
282 |
+
}
|
283 |
+
|
284 |
public static function wp_user_has_admin_role( $wp_user_id ) {
|
285 |
$caps = get_user_meta( $wp_user_id, 'wp_capabilities', true );
|
286 |
if ( is_array( $caps ) && in_array( 'administrator', array_keys( (array) $caps ) ) ) {
|
287 |
+
//This wp user has "administrator" role.
|
288 |
+
return true;
|
289 |
}
|
290 |
+
//Check if $caps was empty (It can happen on sites with customized roles and capbilities). If yes, then perform an additional role check.
|
291 |
+
if ( empty ( $caps ) ){
|
292 |
+
//Try to retrieve roles from the user object.
|
293 |
+
SwpmLog::log_simple_debug( 'Empty caps. Calling get_wp_user_roles_by_id() to retrieve role.', true );
|
294 |
+
$roles = self::get_wp_user_roles_by_id($wp_user_id);
|
295 |
+
if ( is_array( $roles ) && in_array( 'administrator', array_keys( (array) $roles ) ) ) {
|
296 |
+
//This wp user has "administrator" role.
|
297 |
+
return true;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
|
301 |
return false;
|
302 |
}
|
303 |
|
classes/class.swpm-utils-misc.php
CHANGED
@@ -449,6 +449,9 @@ class SwpmMiscUtils {
|
|
449 |
$formatted_content = prepend_attachment( $formatted_content );
|
450 |
$formatted_content = capital_P_dangit( $formatted_content );
|
451 |
$formatted_content = do_shortcode( $formatted_content );
|
|
|
|
|
|
|
452 |
|
453 |
return $formatted_content;
|
454 |
}
|
449 |
$formatted_content = prepend_attachment( $formatted_content );
|
450 |
$formatted_content = capital_P_dangit( $formatted_content );
|
451 |
$formatted_content = do_shortcode( $formatted_content );
|
452 |
+
$formatted_content = do_blocks( $formatted_content );
|
453 |
+
|
454 |
+
$formatted_content = apply_filters('swpm_format_raw_content_for_front_end_display', $formatted_content);
|
455 |
|
456 |
return $formatted_content;
|
457 |
}
|
ipn/swpm_handle_subsc_ipn.php
CHANGED
@@ -1,371 +1,371 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function swpm_handle_subsc_signup_stand_alone( $ipn_data, $subsc_ref, $unique_ref, $swpm_id = '' ) {
|
4 |
-
global $wpdb;
|
5 |
-
$settings = SwpmSettings::get_instance();
|
6 |
-
$membership_level = $subsc_ref;
|
7 |
-
|
8 |
-
if ( isset( $ipn_data['subscr_id'] ) && ! empty( $ipn_data['subscr_id'] ) ) {
|
9 |
-
$subscr_id = $ipn_data['subscr_id'];
|
10 |
-
} else {
|
11 |
-
$subscr_id = $unique_ref;
|
12 |
-
}
|
13 |
-
|
14 |
-
swpm_debug_log_subsc( 'swpm_handle_subsc_signup_stand_alone(). Custom value: ' . $ipn_data['custom'] . ', Unique reference: ' . $unique_ref, true );
|
15 |
-
parse_str( $ipn_data['custom'], $custom_vars );
|
16 |
-
|
17 |
-
if ( empty( $swpm_id ) ) {
|
18 |
-
// Lets try to find an existing user profile for this payment.
|
19 |
-
$email = $ipn_data['payer_email'];
|
20 |
-
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE email = %s", $email ), OBJECT ); // db call ok; no-cache ok.
|
21 |
-
if ( ! $query_db ) { // try to retrieve the member details based on the unique_ref.
|
22 |
-
swpm_debug_log_subsc( 'Could not find any record using the given email address (' . $email . '). Attempting to query database using the unique reference: ' . $unique_ref, true );
|
23 |
-
if ( ! empty( $unique_ref ) ) {
|
24 |
-
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE subscr_id = %s", $unique_ref ), OBJECT ); // db call ok; no-cache ok.
|
25 |
-
if ( $query_db ) {
|
26 |
-
$swpm_id = $query_db->member_id;
|
27 |
-
swpm_debug_log_subsc( 'Found a match in the member database using unique reference. Member ID: ' . $swpm_id, true );
|
28 |
-
} else {
|
29 |
-
swpm_debug_log_subsc( 'Did not find a match for an existing member profile for the given reference. This must be a new payment from a new member.', true );
|
30 |
-
}
|
31 |
-
} else {
|
32 |
-
swpm_debug_log_subsc( 'Unique reference is missing in the notification so we have to assume that this is not a payment for an existing member.', true );
|
33 |
-
}
|
34 |
-
} else {
|
35 |
-
$swpm_id = $query_db->member_id;
|
36 |
-
swpm_debug_log_subsc( 'Found a match in the member database. Member ID: ' . $swpm_id, true );
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
if ( ! empty( $swpm_id ) ) {
|
41 |
-
// This is payment from an existing member/user. Update the existing member account.
|
42 |
-
swpm_debug_log_subsc( 'Modifying the existing membership profile... Member ID: ' . $swpm_id, true );
|
43 |
-
|
44 |
-
// Upgrade the member account.
|
45 |
-
$account_state = 'active'; // This is renewal or upgrade of a previously active account. So the status should be set to active.
|
46 |
-
|
47 |
-
$resultset = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE member_id = %d", $swpm_id ), OBJECT );
|
48 |
-
if ( ! $resultset ) {
|
49 |
-
swpm_debug_log_subsc( 'ERROR! Could not find a member account record for the given Member ID: ' . $swpm_id, false );
|
50 |
-
return;
|
51 |
-
}
|
52 |
-
$old_membership_level = $resultset->membership_level;
|
53 |
-
|
54 |
-
// If the payment is for the same/existing membership level, then this is a renewal. Refresh the start date as appropriate.
|
55 |
-
$args = array(
|
56 |
-
'swpm_id' => $swpm_id,
|
57 |
-
'membership_level' => $membership_level,
|
58 |
-
'old_membership_level' => $old_membership_level,
|
59 |
-
);
|
60 |
-
$subscription_starts = SwpmMemberUtils::calculate_access_start_date_for_account_update( $args );
|
61 |
-
$subscription_starts = apply_filters( 'swpm_account_update_subscription_starts', $subscription_starts, $args );
|
62 |
-
swpm_debug_log_subsc( 'Setting access starts date value to: ' . $subscription_starts, true );
|
63 |
-
|
64 |
-
swpm_debug_log_subsc( 'Updating the current membership level (' . $old_membership_level . ') of this member to the newly paid level (' . $membership_level . ')', true );
|
65 |
-
// Set account status to active, update level to the newly paid level, update access start date, update subsriber ID (if applicable).
|
66 |
-
$wpdb->query(
|
67 |
-
$wpdb->prepare(
|
68 |
-
"UPDATE {$wpdb->prefix}swpm_members_tbl SET account_state=%s, membership_level=%d,subscription_starts=%s,subscr_id=%s WHERE member_id=%d",
|
69 |
-
$account_state,
|
70 |
-
$membership_level,
|
71 |
-
$subscription_starts,
|
72 |
-
$subscr_id,
|
73 |
-
$swpm_id
|
74 |
-
)
|
75 |
-
);
|
76 |
-
|
77 |
-
// Trigger level changed/updated action hook.
|
78 |
-
do_action(
|
79 |
-
'swpm_membership_level_changed',
|
80 |
-
array(
|
81 |
-
'member_id' => $swpm_id,
|
82 |
-
'from_level' => $old_membership_level,
|
83 |
-
'to_level' => $membership_level,
|
84 |
-
)
|
85 |
-
);
|
86 |
-
|
87 |
-
// Set Email details for the account upgrade notification.
|
88 |
-
$email = $ipn_data['payer_email'];
|
89 |
-
$subject = $settings->get_value( 'upgrade-complete-mail-subject' );
|
90 |
-
if ( empty( $subject ) ) {
|
91 |
-
$subject = 'Member Account Upgraded';
|
92 |
-
}
|
93 |
-
$body = $settings->get_value( 'upgrade-complete-mail-body' );
|
94 |
-
if ( empty( $body ) ) {
|
95 |
-
$body = 'Your account has been upgraded successfully';
|
96 |
-
}
|
97 |
-
$from_address = $settings->get_value( 'email-from' );
|
98 |
-
|
99 |
-
$additional_args = array();
|
100 |
-
$email_body = SwpmMiscUtils::replace_dynamic_tags( $body, $swpm_id, $additional_args );
|
101 |
-
$headers = 'From: ' . $from_address . "\r\n";
|
102 |
-
|
103 |
-
$subject = apply_filters( 'swpm_email_upgrade_complete_subject', $subject );
|
104 |
-
$email_body = apply_filters( 'swpm_email_upgrade_complete_body', $email_body );
|
105 |
-
|
106 |
-
if ( $settings->get_value( 'disable-email-after-upgrade' ) ) {
|
107 |
-
swpm_debug_log_subsc( 'The disable upgrade email settings is checked. No account upgrade/update email will be sent.', true );
|
108 |
-
//Nothing to do.
|
109 |
-
} else {
|
110 |
-
SwpmMiscUtils::mail( $email, $subject, $email_body, $headers );
|
111 |
-
swpm_debug_log_subsc( 'Member upgrade/update completion email successfully sent to: ' . $email, true );
|
112 |
-
}
|
113 |
-
// End of existing user account upgrade/update.
|
114 |
-
} else {
|
115 |
-
// create new member account.
|
116 |
-
$default_account_status = $settings->get_value( 'default-account-status', 'active' );
|
117 |
-
|
118 |
-
$data = array();
|
119 |
-
$data['user_name'] = '';
|
120 |
-
$data['password'] = '';
|
121 |
-
|
122 |
-
$data['first_name'] = $ipn_data['first_name'];
|
123 |
-
$data['last_name'] = $ipn_data['last_name'];
|
124 |
-
$data['email'] = $ipn_data['payer_email'];
|
125 |
-
$data['membership_level'] = $membership_level;
|
126 |
-
$data['subscr_id'] = $subscr_id;
|
127 |
-
|
128 |
-
$data['gender'] = 'not specified';
|
129 |
-
$data['address_street'] = $ipn_data['address_street'];
|
130 |
-
$data['address_city'] = $ipn_data['address_city'];
|
131 |
-
$data['address_state'] = $ipn_data['address_state'];
|
132 |
-
$data['address_zipcode'] = isset( $ipn_data['address_zip'] ) ? $ipn_data['address_zip'] : '';
|
133 |
-
$data['country'] = isset( $ipn_data['address_country'] ) ? $ipn_data['address_country'] : '';
|
134 |
-
$data['member_since'] = $data['subscription_starts'] = $data['last_accessed'] = SwpmUtils::get_current_date_in_wp_zone();
|
135 |
-
$data['account_state'] = $default_account_status;
|
136 |
-
$reg_code = uniqid();
|
137 |
-
$md5_code = md5( $reg_code );
|
138 |
-
$data['reg_code'] = $md5_code;
|
139 |
-
$data['referrer'] = $data['extra_info'] = $data['txn_id'] = '';
|
140 |
-
$data['last_accessed_from_ip'] = isset( $custom_vars['user_ip'] ) ? $custom_vars['user_ip'] : ''; // Save the users IP address.
|
141 |
-
|
142 |
-
swpm_debug_log_subsc( 'Creating new member account. Membership level ID: ' . $membership_level . ', Subscriber ID value: ' . $data['subscr_id'], true );
|
143 |
-
|
144 |
-
$data = array_filter( $data ); // Remove any null values.
|
145 |
-
$wpdb->insert( "{$wpdb->prefix}swpm_members_tbl", $data ); // Create the member record.
|
146 |
-
$id = $wpdb->insert_id;
|
147 |
-
if ( empty( $id ) ) {
|
148 |
-
swpm_debug_log_subsc( 'Error! Failed to insert a new member record. This request will fail.', false );
|
149 |
-
return;
|
150 |
-
}
|
151 |
-
|
152 |
-
$separator = '?';
|
153 |
-
$url = $settings->get_value( 'registration-page-url' );
|
154 |
-
if ( strpos( $url, '?' ) !== false ) {
|
155 |
-
$separator = '&';
|
156 |
-
}
|
157 |
-
|
158 |
-
$reg_url = $url . $separator . 'member_id=' . $id . '&code=' . $md5_code;
|
159 |
-
swpm_debug_log_subsc( 'Member signup URL: ' . $reg_url, true );
|
160 |
-
|
161 |
-
$subject = $settings->get_value( 'reg-prompt-complete-mail-subject' );
|
162 |
-
if ( empty( $subject ) ) {
|
163 |
-
$subject = 'Please complete your registration';
|
164 |
-
}
|
165 |
-
$body = $settings->get_value( 'reg-prompt-complete-mail-body' );
|
166 |
-
if ( empty( $body ) ) {
|
167 |
-
$body = "Please use the following link to complete your registration. \n {reg_link}";
|
168 |
-
}
|
169 |
-
$from_address = $settings->get_value( 'email-from' );
|
170 |
-
$body = html_entity_decode( $body );
|
171 |
-
|
172 |
-
$additional_args = array( 'reg_link' => $reg_url );
|
173 |
-
$email_body = SwpmMiscUtils::replace_dynamic_tags( $body, $id, $additional_args );
|
174 |
-
$headers = 'From: ' . $from_address . "\r\n";
|
175 |
-
|
176 |
-
$subject = apply_filters( 'swpm_email_complete_registration_subject', $subject );
|
177 |
-
$email_body = apply_filters( 'swpm_email_complete_registration_body', $email_body );
|
178 |
-
if ( empty( $email_body ) ) {
|
179 |
-
swpm_debug_log_subsc( 'Notice: Member signup (prompt to complete registration) email body has been set empty via the filter hook. No email will be sent.', true );
|
180 |
-
} else {
|
181 |
-
SwpmMiscUtils::mail( $email, $subject, $email_body, $headers );
|
182 |
-
swpm_debug_log_subsc( 'Member signup (prompt to complete registration) email successfully sent to: ' . $email, true );
|
183 |
-
}
|
184 |
-
}
|
185 |
-
|
186 |
-
}
|
187 |
-
|
188 |
-
/*
|
189 |
-
* All in one function that can handle notification for refund, cancellation, end of term
|
190 |
-
*/
|
191 |
-
|
192 |
-
function swpm_handle_subsc_cancel_stand_alone( $ipn_data, $refund = false ) {
|
193 |
-
|
194 |
-
global $wpdb;
|
195 |
-
|
196 |
-
$swpm_id = '';
|
197 |
-
if ( isset( $ipn_data['custom'] ) ){
|
198 |
-
$customvariables = SwpmTransactions::parse_custom_var( $ipn_data['custom'] );
|
199 |
-
$swpm_id = $customvariables['swpm_id'];
|
200 |
-
}
|
201 |
-
|
202 |
-
swpm_debug_log_subsc( 'Refund/Cancellation check - lets see if a member account needs to be deactivated.', true );
|
203 |
-
// swpm_debug_log_subsc("Parent txn id: " . $ipn_data['parent_txn_id'] . ", Subscr ID: " . $ipn_data['subscr_id'] . ", SWPM ID: " . $swpm_id, true);.
|
204 |
-
|
205 |
-
if ( ! empty( $swpm_id ) ) {
|
206 |
-
// This IPN has the SWPM ID. Retrieve the member record using member ID.
|
207 |
-
swpm_debug_log_subsc( 'Member ID is present. Retrieving member account from the database. Member ID: ' . $swpm_id, true );
|
208 |
-
$resultset = SwpmMemberUtils::get_user_by_id( $swpm_id );
|
209 |
-
} elseif ( isset( $ipn_data['subscr_id'] ) && ! empty( $ipn_data['subscr_id'] ) ) {
|
210 |
-
// This IPN has the subscriber ID. Retrieve the member record using subscr_id.
|
211 |
-
$subscr_id = $ipn_data['subscr_id'];
|
212 |
-
swpm_debug_log_subsc( 'Subscriber ID is present. Retrieving member account from the database. Subscr_id: ' . $subscr_id, true );
|
213 |
-
$resultset = $wpdb->get_row(
|
214 |
-
$wpdb->prepare(
|
215 |
-
"SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id LIKE %s",
|
216 |
-
'%' . $wpdb->esc_like( $subscr_id ) . '%'
|
217 |
-
),
|
218 |
-
OBJECT
|
219 |
-
);
|
220 |
-
} else {
|
221 |
-
// Refund for a one time transaction. Use the parent transaction ID to retrieve the profile.
|
222 |
-
$subscr_id = $ipn_data['parent_txn_id'];
|
223 |
-
$resultset = $wpdb->get_row(
|
224 |
-
$wpdb->prepare(
|
225 |
-
"SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id LIKE %s",
|
226 |
-
'%' . $wpdb->esc_like( $subscr_id ) . '%'
|
227 |
-
),
|
228 |
-
OBJECT
|
229 |
-
);
|
230 |
-
}
|
231 |
-
|
232 |
-
if ( $resultset ) {
|
233 |
-
// We have found a member profile for this notification.
|
234 |
-
|
235 |
-
$member_id = $resultset->member_id;
|
236 |
-
|
237 |
-
// First, check if this is a refund notification.
|
238 |
-
if ( $refund ) {
|
239 |
-
// This is a refund (not just a subscription cancellation or end). So deactivate the account regardless and bail.
|
240 |
-
SwpmMemberUtils::update_account_state( $member_id, 'inactive' ); // Set the account status to inactive.
|
241 |
-
swpm_debug_log_subsc( 'Subscription refund notification received! Member account deactivated.', true );
|
242 |
-
return;
|
243 |
-
}
|
244 |
-
|
245 |
-
// This is a cancellation or end of subscription term (no refund).
|
246 |
-
// Lets retrieve the membership level and details.
|
247 |
-
$level_id = $resultset->membership_level;
|
248 |
-
swpm_debug_log_subsc( 'Membership level ID of the member is: ' . $level_id, true );
|
249 |
-
$level_row = SwpmUtils::get_membership_level_row_by_id( $level_id );
|
250 |
-
$subs_duration_type = $level_row->subscription_duration_type;
|
251 |
-
|
252 |
-
swpm_debug_log_subsc( 'Subscription duration type: ' . $subs_duration_type, true );
|
253 |
-
|
254 |
-
if ( SwpmMembershipLevel::NO_EXPIRY == $subs_duration_type ) {
|
255 |
-
// This is a level with "no expiry" or "until cancelled" duration.
|
256 |
-
swpm_debug_log_subsc( 'This is a level with "no expiry" or "until cancelled" duration', true );
|
257 |
-
|
258 |
-
// Deactivate this account as the membership level is "no expiry" or "until cancelled".
|
259 |
-
$account_state = 'inactive';
|
260 |
-
SwpmMemberUtils::update_account_state( $member_id, $account_state );
|
261 |
-
swpm_debug_log_subsc( 'Subscription cancellation or end of term received! Member account deactivated. Member ID: ' . $member_id, true );
|
262 |
-
} elseif ( SwpmMembershipLevel::FIXED_DATE == $subs_duration_type ) {
|
263 |
-
// This is a level with a "fixed expiry date" duration.
|
264 |
-
swpm_debug_log_subsc( 'This is a level with a "fixed expiry date" duration.', true );
|
265 |
-
swpm_debug_log_subsc( 'Nothing to do here. The account will expire on the fixed set date.', true );
|
266 |
-
} else {
|
267 |
-
// This is a level with "duration" type expiry (example: 30 days, 1 year etc). subscription_period has the duration/period.
|
268 |
-
$subs_period = $level_row->subscription_period;
|
269 |
-
$subs_period_unit = SwpmMembershipLevel::get_level_duration_type_string( $level_row->subscription_duration_type );
|
270 |
-
|
271 |
-
swpm_debug_log_subsc( 'This is a level with "duration" type expiry. Duration period: ' . $subs_period . ', Unit: ' . $subs_period_unit, true );
|
272 |
-
swpm_debug_log_subsc( 'Nothing to do here. The account will expire after the duration time is over.', true );
|
273 |
-
|
274 |
-
// TODO Later as an improvement. If you wanted to segment the members who have unsubscribed, you can set the account status to "unsubscribed" here.
|
275 |
-
// Make sure the cronjob to do expiry check and deactivate the member accounts treat this status as if it is "active".
|
276 |
-
}
|
277 |
-
|
278 |
-
$ipn_data['member_id'] = $member_id;
|
279 |
-
do_action( 'swpm_subscription_payment_cancelled', $ipn_data ); // Hook for recurring payment received.
|
280 |
-
} else {
|
281 |
-
swpm_debug_log_subsc( 'No associated active member record found for this notification.', false );
|
282 |
-
return;
|
283 |
-
}
|
284 |
-
}
|
285 |
-
|
286 |
-
function swpm_update_member_subscription_start_date_if_applicable( $ipn_data ) {
|
287 |
-
global $wpdb;
|
288 |
-
$email = isset( $ipn_data['payer_email'] ) ? $ipn_data['payer_email'] : '';
|
289 |
-
$subscr_id = $ipn_data['subscr_id'];
|
290 |
-
$account_state = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
|
291 |
-
$account_state = apply_filters( 'swpm_account_status_for_subscription_start_date_update', $account_state );
|
292 |
-
|
293 |
-
swpm_debug_log_subsc( 'Updating subscription start date if applicable for this subscription payment. Subscriber ID: ' . $subscr_id . ', Email: ' . $email . ', Account status: ' . $account_state, true );
|
294 |
-
|
295 |
-
// We can also query using the email address or SWPM ID (if present in custom var).
|
296 |
-
|
297 |
-
//Try to find the profile with the given subscr_id. It will exact match subscr_id or match subscr_id|123
|
298 |
-
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE subscr_id = %s OR subscr_id LIKE %s", $subscr_id, $subscr_id.'|%' ), OBJECT );
|
299 |
-
if ( $query_db ) {
|
300 |
-
$swpm_id = $query_db->member_id;
|
301 |
-
$current_primary_level = $query_db->membership_level;
|
302 |
-
swpm_debug_log_subsc( 'Found a record in the member table. The Member ID of the account to check is: ' . $swpm_id . ' Membership Level: ' . $current_primary_level, true );
|
303 |
-
|
304 |
-
$ipn_data['member_id'] = $swpm_id;
|
305 |
-
do_action( 'swpm_recurring_payment_received', $ipn_data ); // Hook for recurring payment received.
|
306 |
-
|
307 |
-
$subscription_starts = SwpmUtils::get_current_date_in_wp_zone();
|
308 |
-
|
309 |
-
$wpdb->query(
|
310 |
-
$wpdb->prepare(
|
311 |
-
"UPDATE {$wpdb->prefix}swpm_members_tbl SET account_state=%s,subscription_starts=%s WHERE member_id=%d",
|
312 |
-
$account_state,
|
313 |
-
$subscription_starts,
|
314 |
-
$swpm_id
|
315 |
-
)
|
316 |
-
);
|
317 |
-
swpm_debug_log_subsc( 'Updated the member profile with current date as the subscription start date.', true );
|
318 |
-
// Lets check to see if the subscriber ID and the subscription start date value was updated correctly.
|
319 |
-
$member_record = SwpmMemberUtils::get_user_by_id( $swpm_id );
|
320 |
-
swpm_debug_log_subsc( 'Value after update - Subscriber ID: ' . $member_record->subscr_id . ', Start Date: ' . $member_record->subscription_starts, true );
|
321 |
-
} else {
|
322 |
-
swpm_debug_log_subsc( 'Did not find an existing record in the members table for subscriber ID: ' . $subscr_id, true );
|
323 |
-
swpm_debug_log_subsc( 'This could be a new subscription payment for a new subscription agreement.', true );
|
324 |
-
}
|
325 |
-
}
|
326 |
-
|
327 |
-
function swpm_is_paypal_recurring_payment($payment_data){
|
328 |
-
$recurring_payment = false;
|
329 |
-
$transaction_type = $payment_data['txn_type'];
|
330 |
-
|
331 |
-
if ($transaction_type == "recurring_payment") {
|
332 |
-
$recurring_payment = true;
|
333 |
-
|
334 |
-
} else if ($transaction_type == "subscr_payment") {
|
335 |
-
$item_number = $payment_data['item_number'];
|
336 |
-
$subscr_id = $payment_data['subscr_id'];
|
337 |
-
swpm_debug_log_subsc('Is recurring payment check debug data: ' . $item_number . "|" . $subscr_id, true);
|
338 |
-
|
339 |
-
$result = SwpmTransactions::get_transaction_row_by_subscr_id($subscr_id);
|
340 |
-
if (isset($result)) {
|
341 |
-
swpm_debug_log_subsc('This subscr_id exists in the transactions db. Recurring payment check flag value is true.', true);
|
342 |
-
$recurring_payment = true;
|
343 |
-
return $recurring_payment;
|
344 |
-
}
|
345 |
-
}
|
346 |
-
if ($recurring_payment) {
|
347 |
-
swpm_debug_log_subsc('Recurring payment check flag value is true.', true);
|
348 |
-
}
|
349 |
-
return $recurring_payment;
|
350 |
-
}
|
351 |
-
|
352 |
-
function swpm_debug_log_subsc( $message, $success, $end = false ) {
|
353 |
-
$settings = SwpmSettings::get_instance();
|
354 |
-
$debug_enabled = $settings->get_value( 'enable-debug' );
|
355 |
-
if ( empty( $debug_enabled ) ) { // Debug is not enabled.
|
356 |
-
return;
|
357 |
-
}
|
358 |
-
|
359 |
-
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
360 |
-
|
361 |
-
// Timestamp.
|
362 |
-
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
363 |
-
$text = '[' . $log_timestamp . '] - ' . ( ( $success ) ? 'SUCCESS: ' : 'FAILURE: ' ) . $message . "\n";
|
364 |
-
if ( $end ) {
|
365 |
-
$text .= "\n------------------------------------------------------------------\n\n";
|
366 |
-
}
|
367 |
-
// Write to log.
|
368 |
-
$fp = fopen( $debug_log_file_name, 'a' );
|
369 |
-
fwrite( $fp, $text );
|
370 |
-
fclose( $fp ); // close file.
|
371 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function swpm_handle_subsc_signup_stand_alone( $ipn_data, $subsc_ref, $unique_ref, $swpm_id = '' ) {
|
4 |
+
global $wpdb;
|
5 |
+
$settings = SwpmSettings::get_instance();
|
6 |
+
$membership_level = $subsc_ref;
|
7 |
+
|
8 |
+
if ( isset( $ipn_data['subscr_id'] ) && ! empty( $ipn_data['subscr_id'] ) ) {
|
9 |
+
$subscr_id = $ipn_data['subscr_id'];
|
10 |
+
} else {
|
11 |
+
$subscr_id = $unique_ref;
|
12 |
+
}
|
13 |
+
|
14 |
+
swpm_debug_log_subsc( 'swpm_handle_subsc_signup_stand_alone(). Custom value: ' . $ipn_data['custom'] . ', Unique reference: ' . $unique_ref, true );
|
15 |
+
parse_str( $ipn_data['custom'], $custom_vars );
|
16 |
+
|
17 |
+
if ( empty( $swpm_id ) ) {
|
18 |
+
// Lets try to find an existing user profile for this payment.
|
19 |
+
$email = $ipn_data['payer_email'];
|
20 |
+
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE email = %s", $email ), OBJECT ); // db call ok; no-cache ok.
|
21 |
+
if ( ! $query_db ) { // try to retrieve the member details based on the unique_ref.
|
22 |
+
swpm_debug_log_subsc( 'Could not find any record using the given email address (' . $email . '). Attempting to query database using the unique reference: ' . $unique_ref, true );
|
23 |
+
if ( ! empty( $unique_ref ) ) {
|
24 |
+
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE subscr_id = %s", $unique_ref ), OBJECT ); // db call ok; no-cache ok.
|
25 |
+
if ( $query_db ) {
|
26 |
+
$swpm_id = $query_db->member_id;
|
27 |
+
swpm_debug_log_subsc( 'Found a match in the member database using unique reference. Member ID: ' . $swpm_id, true );
|
28 |
+
} else {
|
29 |
+
swpm_debug_log_subsc( 'Did not find a match for an existing member profile for the given reference. This must be a new payment from a new member.', true );
|
30 |
+
}
|
31 |
+
} else {
|
32 |
+
swpm_debug_log_subsc( 'Unique reference is missing in the notification so we have to assume that this is not a payment for an existing member.', true );
|
33 |
+
}
|
34 |
+
} else {
|
35 |
+
$swpm_id = $query_db->member_id;
|
36 |
+
swpm_debug_log_subsc( 'Found a match in the member database. Member ID: ' . $swpm_id, true );
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
if ( ! empty( $swpm_id ) ) {
|
41 |
+
// This is payment from an existing member/user. Update the existing member account.
|
42 |
+
swpm_debug_log_subsc( 'Modifying the existing membership profile... Member ID: ' . $swpm_id, true );
|
43 |
+
|
44 |
+
// Upgrade the member account.
|
45 |
+
$account_state = 'active'; // This is renewal or upgrade of a previously active account. So the status should be set to active.
|
46 |
+
|
47 |
+
$resultset = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE member_id = %d", $swpm_id ), OBJECT );
|
48 |
+
if ( ! $resultset ) {
|
49 |
+
swpm_debug_log_subsc( 'ERROR! Could not find a member account record for the given Member ID: ' . $swpm_id, false );
|
50 |
+
return;
|
51 |
+
}
|
52 |
+
$old_membership_level = $resultset->membership_level;
|
53 |
+
|
54 |
+
// If the payment is for the same/existing membership level, then this is a renewal. Refresh the start date as appropriate.
|
55 |
+
$args = array(
|
56 |
+
'swpm_id' => $swpm_id,
|
57 |
+
'membership_level' => $membership_level,
|
58 |
+
'old_membership_level' => $old_membership_level,
|
59 |
+
);
|
60 |
+
$subscription_starts = SwpmMemberUtils::calculate_access_start_date_for_account_update( $args );
|
61 |
+
$subscription_starts = apply_filters( 'swpm_account_update_subscription_starts', $subscription_starts, $args );
|
62 |
+
swpm_debug_log_subsc( 'Setting access starts date value to: ' . $subscription_starts, true );
|
63 |
+
|
64 |
+
swpm_debug_log_subsc( 'Updating the current membership level (' . $old_membership_level . ') of this member to the newly paid level (' . $membership_level . ')', true );
|
65 |
+
// Set account status to active, update level to the newly paid level, update access start date, update subsriber ID (if applicable).
|
66 |
+
$wpdb->query(
|
67 |
+
$wpdb->prepare(
|
68 |
+
"UPDATE {$wpdb->prefix}swpm_members_tbl SET account_state=%s, membership_level=%d,subscription_starts=%s,subscr_id=%s WHERE member_id=%d",
|
69 |
+
$account_state,
|
70 |
+
$membership_level,
|
71 |
+
$subscription_starts,
|
72 |
+
$subscr_id,
|
73 |
+
$swpm_id
|
74 |
+
)
|
75 |
+
);
|
76 |
+
|
77 |
+
// Trigger level changed/updated action hook.
|
78 |
+
do_action(
|
79 |
+
'swpm_membership_level_changed',
|
80 |
+
array(
|
81 |
+
'member_id' => $swpm_id,
|
82 |
+
'from_level' => $old_membership_level,
|
83 |
+
'to_level' => $membership_level,
|
84 |
+
)
|
85 |
+
);
|
86 |
+
|
87 |
+
// Set Email details for the account upgrade notification.
|
88 |
+
$email = $ipn_data['payer_email'];
|
89 |
+
$subject = $settings->get_value( 'upgrade-complete-mail-subject' );
|
90 |
+
if ( empty( $subject ) ) {
|
91 |
+
$subject = 'Member Account Upgraded';
|
92 |
+
}
|
93 |
+
$body = $settings->get_value( 'upgrade-complete-mail-body' );
|
94 |
+
if ( empty( $body ) ) {
|
95 |
+
$body = 'Your account has been upgraded successfully';
|
96 |
+
}
|
97 |
+
$from_address = $settings->get_value( 'email-from' );
|
98 |
+
|
99 |
+
$additional_args = array();
|
100 |
+
$email_body = SwpmMiscUtils::replace_dynamic_tags( $body, $swpm_id, $additional_args );
|
101 |
+
$headers = 'From: ' . $from_address . "\r\n";
|
102 |
+
|
103 |
+
$subject = apply_filters( 'swpm_email_upgrade_complete_subject', $subject );
|
104 |
+
$email_body = apply_filters( 'swpm_email_upgrade_complete_body', $email_body );
|
105 |
+
|
106 |
+
if ( $settings->get_value( 'disable-email-after-upgrade' ) ) {
|
107 |
+
swpm_debug_log_subsc( 'The disable upgrade email settings is checked. No account upgrade/update email will be sent.', true );
|
108 |
+
//Nothing to do.
|
109 |
+
} else {
|
110 |
+
SwpmMiscUtils::mail( $email, $subject, $email_body, $headers );
|
111 |
+
swpm_debug_log_subsc( 'Member upgrade/update completion email successfully sent to: ' . $email, true );
|
112 |
+
}
|
113 |
+
// End of existing user account upgrade/update.
|
114 |
+
} else {
|
115 |
+
// create new member account.
|
116 |
+
$default_account_status = $settings->get_value( 'default-account-status', 'active' );
|
117 |
+
|
118 |
+
$data = array();
|
119 |
+
$data['user_name'] = '';
|
120 |
+
$data['password'] = '';
|
121 |
+
|
122 |
+
$data['first_name'] = $ipn_data['first_name'];
|
123 |
+
$data['last_name'] = $ipn_data['last_name'];
|
124 |
+
$data['email'] = $ipn_data['payer_email'];
|
125 |
+
$data['membership_level'] = $membership_level;
|
126 |
+
$data['subscr_id'] = $subscr_id;
|
127 |
+
|
128 |
+
$data['gender'] = 'not specified';
|
129 |
+
$data['address_street'] = $ipn_data['address_street'];
|
130 |
+
$data['address_city'] = $ipn_data['address_city'];
|
131 |
+
$data['address_state'] = $ipn_data['address_state'];
|
132 |
+
$data['address_zipcode'] = isset( $ipn_data['address_zip'] ) ? $ipn_data['address_zip'] : '';
|
133 |
+
$data['country'] = isset( $ipn_data['address_country'] ) ? $ipn_data['address_country'] : '';
|
134 |
+
$data['member_since'] = $data['subscription_starts'] = $data['last_accessed'] = SwpmUtils::get_current_date_in_wp_zone();
|
135 |
+
$data['account_state'] = $default_account_status;
|
136 |
+
$reg_code = uniqid();
|
137 |
+
$md5_code = md5( $reg_code );
|
138 |
+
$data['reg_code'] = $md5_code;
|
139 |
+
$data['referrer'] = $data['extra_info'] = $data['txn_id'] = '';
|
140 |
+
$data['last_accessed_from_ip'] = isset( $custom_vars['user_ip'] ) ? $custom_vars['user_ip'] : ''; // Save the users IP address.
|
141 |
+
|
142 |
+
swpm_debug_log_subsc( 'Creating new member account. Membership level ID: ' . $membership_level . ', Subscriber ID value: ' . $data['subscr_id'], true );
|
143 |
+
|
144 |
+
$data = array_filter( $data ); // Remove any null values.
|
145 |
+
$wpdb->insert( "{$wpdb->prefix}swpm_members_tbl", $data ); // Create the member record.
|
146 |
+
$id = $wpdb->insert_id;
|
147 |
+
if ( empty( $id ) ) {
|
148 |
+
swpm_debug_log_subsc( 'Error! Failed to insert a new member record. This request will fail.', false );
|
149 |
+
return;
|
150 |
+
}
|
151 |
+
|
152 |
+
$separator = '?';
|
153 |
+
$url = $settings->get_value( 'registration-page-url' );
|
154 |
+
if ( strpos( $url, '?' ) !== false ) {
|
155 |
+
$separator = '&';
|
156 |
+
}
|
157 |
+
|
158 |
+
$reg_url = $url . $separator . 'member_id=' . $id . '&code=' . $md5_code;
|
159 |
+
swpm_debug_log_subsc( 'Member signup URL: ' . $reg_url, true );
|
160 |
+
|
161 |
+
$subject = $settings->get_value( 'reg-prompt-complete-mail-subject' );
|
162 |
+
if ( empty( $subject ) ) {
|
163 |
+
$subject = 'Please complete your registration';
|
164 |
+
}
|
165 |
+
$body = $settings->get_value( 'reg-prompt-complete-mail-body' );
|
166 |
+
if ( empty( $body ) ) {
|
167 |
+
$body = "Please use the following link to complete your registration. \n {reg_link}";
|
168 |
+
}
|
169 |
+
$from_address = $settings->get_value( 'email-from' );
|
170 |
+
$body = html_entity_decode( $body );
|
171 |
+
|
172 |
+
$additional_args = array( 'reg_link' => $reg_url );
|
173 |
+
$email_body = SwpmMiscUtils::replace_dynamic_tags( $body, $id, $additional_args );
|
174 |
+
$headers = 'From: ' . $from_address . "\r\n";
|
175 |
+
|
176 |
+
$subject = apply_filters( 'swpm_email_complete_registration_subject', $subject );
|
177 |
+
$email_body = apply_filters( 'swpm_email_complete_registration_body', $email_body );
|
178 |
+
if ( empty( $email_body ) ) {
|
179 |
+
swpm_debug_log_subsc( 'Notice: Member signup (prompt to complete registration) email body has been set empty via the filter hook. No email will be sent.', true );
|
180 |
+
} else {
|
181 |
+
SwpmMiscUtils::mail( $email, $subject, $email_body, $headers );
|
182 |
+
swpm_debug_log_subsc( 'Member signup (prompt to complete registration) email successfully sent to: ' . $email, true );
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
}
|
187 |
+
|
188 |
+
/*
|
189 |
+
* All in one function that can handle notification for refund, cancellation, end of term
|
190 |
+
*/
|
191 |
+
|
192 |
+
function swpm_handle_subsc_cancel_stand_alone( $ipn_data, $refund = false ) {
|
193 |
+
|
194 |
+
global $wpdb;
|
195 |
+
|
196 |
+
$swpm_id = '';
|
197 |
+
if ( isset( $ipn_data['custom'] ) ){
|
198 |
+
$customvariables = SwpmTransactions::parse_custom_var( $ipn_data['custom'] );
|
199 |
+
$swpm_id = $customvariables['swpm_id'];
|
200 |
+
}
|
201 |
+
|
202 |
+
swpm_debug_log_subsc( 'Refund/Cancellation check - lets see if a member account needs to be deactivated.', true );
|
203 |
+
// swpm_debug_log_subsc("Parent txn id: " . $ipn_data['parent_txn_id'] . ", Subscr ID: " . $ipn_data['subscr_id'] . ", SWPM ID: " . $swpm_id, true);.
|
204 |
+
|
205 |
+
if ( ! empty( $swpm_id ) ) {
|
206 |
+
// This IPN has the SWPM ID. Retrieve the member record using member ID.
|
207 |
+
swpm_debug_log_subsc( 'Member ID is present. Retrieving member account from the database. Member ID: ' . $swpm_id, true );
|
208 |
+
$resultset = SwpmMemberUtils::get_user_by_id( $swpm_id );
|
209 |
+
} elseif ( isset( $ipn_data['subscr_id'] ) && ! empty( $ipn_data['subscr_id'] ) ) {
|
210 |
+
// This IPN has the subscriber ID. Retrieve the member record using subscr_id.
|
211 |
+
$subscr_id = $ipn_data['subscr_id'];
|
212 |
+
swpm_debug_log_subsc( 'Subscriber ID is present. Retrieving member account from the database. Subscr_id: ' . $subscr_id, true );
|
213 |
+
$resultset = $wpdb->get_row(
|
214 |
+
$wpdb->prepare(
|
215 |
+
"SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id LIKE %s",
|
216 |
+
'%' . $wpdb->esc_like( $subscr_id ) . '%'
|
217 |
+
),
|
218 |
+
OBJECT
|
219 |
+
);
|
220 |
+
} else {
|
221 |
+
// Refund for a one time transaction. Use the parent transaction ID to retrieve the profile.
|
222 |
+
$subscr_id = $ipn_data['parent_txn_id'];
|
223 |
+
$resultset = $wpdb->get_row(
|
224 |
+
$wpdb->prepare(
|
225 |
+
"SELECT * FROM {$wpdb->prefix}swpm_members_tbl where subscr_id LIKE %s",
|
226 |
+
'%' . $wpdb->esc_like( $subscr_id ) . '%'
|
227 |
+
),
|
228 |
+
OBJECT
|
229 |
+
);
|
230 |
+
}
|
231 |
+
|
232 |
+
if ( $resultset ) {
|
233 |
+
// We have found a member profile for this notification.
|
234 |
+
|
235 |
+
$member_id = $resultset->member_id;
|
236 |
+
|
237 |
+
// First, check if this is a refund notification.
|
238 |
+
if ( $refund ) {
|
239 |
+
// This is a refund (not just a subscription cancellation or end). So deactivate the account regardless and bail.
|
240 |
+
SwpmMemberUtils::update_account_state( $member_id, 'inactive' ); // Set the account status to inactive.
|
241 |
+
swpm_debug_log_subsc( 'Subscription refund notification received! Member account deactivated.', true );
|
242 |
+
return;
|
243 |
+
}
|
244 |
+
|
245 |
+
// This is a cancellation or end of subscription term (no refund).
|
246 |
+
// Lets retrieve the membership level and details.
|
247 |
+
$level_id = $resultset->membership_level;
|
248 |
+
swpm_debug_log_subsc( 'Membership level ID of the member is: ' . $level_id, true );
|
249 |
+
$level_row = SwpmUtils::get_membership_level_row_by_id( $level_id );
|
250 |
+
$subs_duration_type = $level_row->subscription_duration_type;
|
251 |
+
|
252 |
+
swpm_debug_log_subsc( 'Subscription duration type: ' . $subs_duration_type, true );
|
253 |
+
|
254 |
+
if ( SwpmMembershipLevel::NO_EXPIRY == $subs_duration_type ) {
|
255 |
+
// This is a level with "no expiry" or "until cancelled" duration.
|
256 |
+
swpm_debug_log_subsc( 'This is a level with "no expiry" or "until cancelled" duration', true );
|
257 |
+
|
258 |
+
// Deactivate this account as the membership level is "no expiry" or "until cancelled".
|
259 |
+
$account_state = 'inactive';
|
260 |
+
SwpmMemberUtils::update_account_state( $member_id, $account_state );
|
261 |
+
swpm_debug_log_subsc( 'Subscription cancellation or end of term received! Member account deactivated. Member ID: ' . $member_id, true );
|
262 |
+
} elseif ( SwpmMembershipLevel::FIXED_DATE == $subs_duration_type ) {
|
263 |
+
// This is a level with a "fixed expiry date" duration.
|
264 |
+
swpm_debug_log_subsc( 'This is a level with a "fixed expiry date" duration.', true );
|
265 |
+
swpm_debug_log_subsc( 'Nothing to do here. The account will expire on the fixed set date.', true );
|
266 |
+
} else {
|
267 |
+
// This is a level with "duration" type expiry (example: 30 days, 1 year etc). subscription_period has the duration/period.
|
268 |
+
$subs_period = $level_row->subscription_period;
|
269 |
+
$subs_period_unit = SwpmMembershipLevel::get_level_duration_type_string( $level_row->subscription_duration_type );
|
270 |
+
|
271 |
+
swpm_debug_log_subsc( 'This is a level with "duration" type expiry. Duration period: ' . $subs_period . ', Unit: ' . $subs_period_unit, true );
|
272 |
+
swpm_debug_log_subsc( 'Nothing to do here. The account will expire after the duration time is over.', true );
|
273 |
+
|
274 |
+
// TODO Later as an improvement. If you wanted to segment the members who have unsubscribed, you can set the account status to "unsubscribed" here.
|
275 |
+
// Make sure the cronjob to do expiry check and deactivate the member accounts treat this status as if it is "active".
|
276 |
+
}
|
277 |
+
|
278 |
+
$ipn_data['member_id'] = $member_id;
|
279 |
+
do_action( 'swpm_subscription_payment_cancelled', $ipn_data ); // Hook for recurring payment received.
|
280 |
+
} else {
|
281 |
+
swpm_debug_log_subsc( 'No associated active member record found for this notification.', false );
|
282 |
+
return;
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
function swpm_update_member_subscription_start_date_if_applicable( $ipn_data ) {
|
287 |
+
global $wpdb;
|
288 |
+
$email = isset( $ipn_data['payer_email'] ) ? $ipn_data['payer_email'] : '';
|
289 |
+
$subscr_id = $ipn_data['subscr_id'];
|
290 |
+
$account_state = SwpmSettings::get_instance()->get_value( 'default-account-status', 'active' );
|
291 |
+
$account_state = apply_filters( 'swpm_account_status_for_subscription_start_date_update', $account_state );
|
292 |
+
|
293 |
+
swpm_debug_log_subsc( 'Updating subscription start date if applicable for this subscription payment. Subscriber ID: ' . $subscr_id . ', Email: ' . $email . ', Account status: ' . $account_state, true );
|
294 |
+
|
295 |
+
// We can also query using the email address or SWPM ID (if present in custom var).
|
296 |
+
|
297 |
+
//Try to find the profile with the given subscr_id. It will exact match subscr_id or match subscr_id|123
|
298 |
+
$query_db = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}swpm_members_tbl WHERE subscr_id = %s OR subscr_id LIKE %s", $subscr_id, $subscr_id.'|%' ), OBJECT );
|
299 |
+
if ( $query_db ) {
|
300 |
+
$swpm_id = $query_db->member_id;
|
301 |
+
$current_primary_level = $query_db->membership_level;
|
302 |
+
swpm_debug_log_subsc( 'Found a record in the member table. The Member ID of the account to check is: ' . $swpm_id . ' Membership Level: ' . $current_primary_level, true );
|
303 |
+
|
304 |
+
$ipn_data['member_id'] = $swpm_id;
|
305 |
+
do_action( 'swpm_recurring_payment_received', $ipn_data ); // Hook for recurring payment received.
|
306 |
+
|
307 |
+
$subscription_starts = SwpmUtils::get_current_date_in_wp_zone();
|
308 |
+
|
309 |
+
$wpdb->query(
|
310 |
+
$wpdb->prepare(
|
311 |
+
"UPDATE {$wpdb->prefix}swpm_members_tbl SET account_state=%s,subscription_starts=%s WHERE member_id=%d",
|
312 |
+
$account_state,
|
313 |
+
$subscription_starts,
|
314 |
+
$swpm_id
|
315 |
+
)
|
316 |
+
);
|
317 |
+
swpm_debug_log_subsc( 'Updated the member profile with current date as the subscription start date.', true );
|
318 |
+
// Lets check to see if the subscriber ID and the subscription start date value was updated correctly.
|
319 |
+
$member_record = SwpmMemberUtils::get_user_by_id( $swpm_id );
|
320 |
+
swpm_debug_log_subsc( 'Value after update - Subscriber ID: ' . $member_record->subscr_id . ', Start Date: ' . $member_record->subscription_starts, true );
|
321 |
+
} else {
|
322 |
+
swpm_debug_log_subsc( 'Did not find an existing record in the members table for subscriber ID: ' . $subscr_id, true );
|
323 |
+
swpm_debug_log_subsc( 'This could be a new subscription payment for a new subscription agreement.', true );
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
function swpm_is_paypal_recurring_payment($payment_data){
|
328 |
+
$recurring_payment = false;
|
329 |
+
$transaction_type = $payment_data['txn_type'];
|
330 |
+
|
331 |
+
if ($transaction_type == "recurring_payment") {
|
332 |
+
$recurring_payment = true;
|
333 |
+
|
334 |
+
} else if ($transaction_type == "subscr_payment") {
|
335 |
+
$item_number = $payment_data['item_number'];
|
336 |
+
$subscr_id = $payment_data['subscr_id'];
|
337 |
+
swpm_debug_log_subsc('Is recurring payment check debug data: ' . $item_number . "|" . $subscr_id, true);
|
338 |
+
|
339 |
+
$result = SwpmTransactions::get_transaction_row_by_subscr_id($subscr_id);
|
340 |
+
if (isset($result)) {
|
341 |
+
swpm_debug_log_subsc('This subscr_id exists in the transactions db. Recurring payment check flag value is true.', true);
|
342 |
+
$recurring_payment = true;
|
343 |
+
return $recurring_payment;
|
344 |
+
}
|
345 |
+
}
|
346 |
+
if ($recurring_payment) {
|
347 |
+
swpm_debug_log_subsc('Recurring payment check flag value is true.', true);
|
348 |
+
}
|
349 |
+
return $recurring_payment;
|
350 |
+
}
|
351 |
+
|
352 |
+
function swpm_debug_log_subsc( $message, $success, $end = false ) {
|
353 |
+
$settings = SwpmSettings::get_instance();
|
354 |
+
$debug_enabled = $settings->get_value( 'enable-debug' );
|
355 |
+
if ( empty( $debug_enabled ) ) { // Debug is not enabled.
|
356 |
+
return;
|
357 |
+
}
|
358 |
+
|
359 |
+
$debug_log_file_name = SIMPLE_WP_MEMBERSHIP_PATH . 'log.txt';
|
360 |
+
|
361 |
+
// Timestamp.
|
362 |
+
$log_timestamp = SwpmUtils::get_current_timestamp_for_debug_log();
|
363 |
+
$text = '[' . $log_timestamp . '] - ' . ( ( $success ) ? 'SUCCESS: ' : 'FAILURE: ' ) . $message . "\n";
|
364 |
+
if ( $end ) {
|
365 |
+
$text .= "\n------------------------------------------------------------------\n\n";
|
366 |
+
}
|
367 |
+
// Write to log.
|
368 |
+
$fp = fopen( $debug_log_file_name, 'a' );
|
369 |
+
fwrite( $fp, $text );
|
370 |
+
fclose( $fp ); // close file.
|
371 |
+
}
|
languages/simple-membership-fr_CA.mo
ADDED
Binary file
|
languages/simple-membership-fr_CA.po
ADDED
@@ -0,0 +1,2918 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
4 |
+
"Project-Id-Version: Simple WordPress Membership\n"
|
5 |
+
"POT-Creation-Date: 2021-07-07 13:25+1000\n"
|
6 |
+
"PO-Revision-Date: 2021-09-13 17:46-0400\n"
|
7 |
+
"Language-Team: \n"
|
8 |
+
"MIME-Version: 1.0\n"
|
9 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"X-Generator: Poedit 3.0\n"
|
12 |
+
"X-Poedit-Basepath: ..\n"
|
13 |
+
"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
|
14 |
+
"X-Poedit-WPHeader: simple-wp-membership.php\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
17 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
18 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
19 |
+
"Last-Translator: \n"
|
20 |
+
"Language: fr_CA\n"
|
21 |
+
"X-Poedit-SearchPath-0: .\n"
|
22 |
+
"X-Poedit-SearchPathExcluded-0: *.min.js\n"
|
23 |
+
|
24 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
|
25 |
+
msgid "Payment Button ID"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
|
29 |
+
msgid "Payment Button Title"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
|
33 |
+
msgid "Membership Level ID"
|
34 |
+
msgstr "Niveau"
|
35 |
+
|
36 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
|
37 |
+
msgid "Button Type"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:80
|
41 |
+
msgid "Button Shortcode"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:95
|
45 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:110
|
46 |
+
#: classes/class.swpm-members.php:49
|
47 |
+
#: classes/class.swpm-membership-levels.php:36
|
48 |
+
msgid "Delete"
|
49 |
+
msgstr "Supprimer"
|
50 |
+
|
51 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:128
|
52 |
+
#: views/admin_members_list.php:8
|
53 |
+
#: views/payments/admin_all_payment_transactions.php:32
|
54 |
+
msgid "The selected entry was deleted!"
|
55 |
+
msgstr "L’entrée sélectionnée a été supprimée!"
|
56 |
+
|
57 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:23
|
58 |
+
msgid "Simple Membership::Payments"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:65
|
62 |
+
#: views/template-1.php:95 views/template-2.php:97
|
63 |
+
msgid "View Profile"
|
64 |
+
msgstr "Voir ton profil"
|
65 |
+
|
66 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:83
|
67 |
+
msgid "Row ID"
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:84
|
71 |
+
#: views/forgot_password.php:5
|
72 |
+
#: views/payments/admin_add_edit_transaction_manually.php:75
|
73 |
+
msgid "Email Address"
|
74 |
+
msgstr "Adresse email"
|
75 |
+
|
76 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:85
|
77 |
+
#: classes/class.swpm-members.php:23 views/add.php:34
|
78 |
+
#: views/admin_member_form_common_part.php:15 views/edit.php:39
|
79 |
+
#: views/payments/admin_add_edit_transaction_manually.php:83
|
80 |
+
#: includes/swpm_mda_show_profile.php:28
|
81 |
+
msgid "First Name"
|
82 |
+
msgstr "Prénom"
|
83 |
+
|
84 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:86
|
85 |
+
#: classes/class.swpm-members.php:24 views/add.php:38
|
86 |
+
#: views/admin_member_form_common_part.php:19 views/edit.php:43
|
87 |
+
#: views/payments/admin_add_edit_transaction_manually.php:91
|
88 |
+
#: includes/swpm_mda_show_profile.php:29
|
89 |
+
msgid "Last Name"
|
90 |
+
msgstr "Nom"
|
91 |
+
|
92 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:87
|
93 |
+
msgid "Member Profile"
|
94 |
+
msgstr "Profil de membre"
|
95 |
+
|
96 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:88
|
97 |
+
#: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
|
98 |
+
#: classes/class.swpm-post-list.php:62
|
99 |
+
#: views/payments/admin_add_edit_transaction_manually.php:125
|
100 |
+
msgid "Date"
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:89
|
104 |
+
#: views/payments/admin_add_edit_transaction_manually.php:133
|
105 |
+
msgid "Transaction ID"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:90
|
109 |
+
#: views/payments/admin_add_edit_transaction_manually.php:141
|
110 |
+
msgid "Subscriber ID"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:91
|
114 |
+
#: views/payments/admin_add_edit_transaction_manually.php:117
|
115 |
+
msgid "Amount"
|
116 |
+
msgstr "Montant"
|
117 |
+
|
118 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:92
|
119 |
+
#: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:26
|
120 |
+
#: classes/class.swpm-membership-levels.php:11
|
121 |
+
#: classes/class.swpm-membership-levels.php:21
|
122 |
+
#: classes/class.swpm-post-list.php:20 views/add.php:42
|
123 |
+
#: views/admin_member_form_common_part.php:2 views/admin_members_list.php:50
|
124 |
+
#: views/edit.php:75 views/payments/admin_add_edit_transaction_manually.php:107
|
125 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
|
126 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
|
127 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:232
|
128 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:49
|
129 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
|
130 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:320
|
131 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:44
|
132 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:330
|
133 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:44
|
134 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:312
|
135 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:108
|
136 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:108
|
137 |
+
msgid "Membership Level"
|
138 |
+
msgstr "Niveau"
|
139 |
+
|
140 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:93
|
141 |
+
#: views/payments/admin_add_edit_transaction_manually.php:149
|
142 |
+
msgid "Status/Note"
|
143 |
+
msgstr ""
|
144 |
+
|
145 |
+
#: classes/class-swpm-member-subscriptions.php:121
|
146 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:164
|
147 |
+
msgid "No active subscriptions"
|
148 |
+
msgstr "Aucun abonnement actif"
|
149 |
+
|
150 |
+
#: classes/class-swpm-member-subscriptions.php:132
|
151 |
+
msgid "Cancel Subscription"
|
152 |
+
msgstr "Annuler l'Abonnement"
|
153 |
+
|
154 |
+
#: classes/class-swpm-member-subscriptions.php:134
|
155 |
+
msgid "Are you sure that you want to cancel the subscription?"
|
156 |
+
msgstr "Es-tu sûre de vouloir annuler ton abonnement?"
|
157 |
+
|
158 |
+
#: classes/class.simple-wp-membership.php:189
|
159 |
+
msgid "The admin of this site does not allow users to access the wp dashboard."
|
160 |
+
msgstr ""
|
161 |
+
"L’administrateur de ce site ne permet pas aux utilisateurs d’accéder au "
|
162 |
+
"tableau de bord wp."
|
163 |
+
|
164 |
+
#: classes/class.simple-wp-membership.php:190
|
165 |
+
msgid "Go back to the home page by "
|
166 |
+
msgstr "Retourne sur la page d’accueil en "
|
167 |
+
|
168 |
+
#: classes/class.simple-wp-membership.php:190
|
169 |
+
msgid "clicking here"
|
170 |
+
msgstr "cliquant ici"
|
171 |
+
|
172 |
+
#: classes/class.simple-wp-membership.php:255
|
173 |
+
msgid ""
|
174 |
+
"Error! This site has the force WP user login feature enabled in the "
|
175 |
+
"settings. We could not find a WP user record for the given username: "
|
176 |
+
msgstr ""
|
177 |
+
"Erreur! Ce site a la fonction de connexion d’utilisateur de force WP activée "
|
178 |
+
"dans les paramètres. Nous n’avons pas pu trouver d’enregistrement "
|
179 |
+
"d’utilisateur WP pour le nom d’utilisateur donné "
|
180 |
+
|
181 |
+
#: classes/class.simple-wp-membership.php:256
|
182 |
+
msgid ""
|
183 |
+
"This error is triggered when a member account doesn't have a corresponding "
|
184 |
+
"WP user account. So the plugin fails to log the user into the WP User system."
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: classes/class.simple-wp-membership.php:257
|
188 |
+
msgid ""
|
189 |
+
"Contact the site admin and request them to check your username in the WP "
|
190 |
+
"Users menu to see what happened with the WP user entry of your account."
|
191 |
+
msgstr ""
|
192 |
+
"Contactez l’administrateur du site et demandez-leur de vérifier votre nom "
|
193 |
+
"d’utilisateur dans le menu des utilisateurs WP pour voir ce qui s’est passé "
|
194 |
+
"avec l’entrée utilisateur WP de votre compte."
|
195 |
+
|
196 |
+
#: classes/class.simple-wp-membership.php:258
|
197 |
+
msgid ""
|
198 |
+
"The site admin can disable the Force WP User Synchronization feature in the "
|
199 |
+
"settings to disable this feature and this error will go away."
|
200 |
+
msgstr ""
|
201 |
+
|
202 |
+
#: classes/class.simple-wp-membership.php:259
|
203 |
+
msgid "You can use the back button of your browser to go back to the site."
|
204 |
+
msgstr ""
|
205 |
+
"Tu peux utiliser le bouton retour de ton navigateur pour revenir sur le site."
|
206 |
+
|
207 |
+
#: classes/class.simple-wp-membership.php:431
|
208 |
+
#: classes/class.swpm-wp-loaded-tasks.php:141
|
209 |
+
msgid "You are not logged in."
|
210 |
+
msgstr "Tu n’es pas connectée."
|
211 |
+
|
212 |
+
#: classes/class.simple-wp-membership.php:482
|
213 |
+
msgid ""
|
214 |
+
"You have the sandbox payment mode enabled in plugin settings. Make sure to "
|
215 |
+
"turn off the sandbox mode when you want to do live transactions."
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: classes/class.simple-wp-membership.php:497
|
219 |
+
msgid "Simple WP Membership Protection"
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: classes/class.simple-wp-membership.php:509
|
223 |
+
msgid "Simple Membership Protection options"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: classes/class.simple-wp-membership.php:527
|
227 |
+
msgid "Do you want to protect this content?"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: classes/class.simple-wp-membership.php:528
|
231 |
+
msgid "No, Do not protect this content."
|
232 |
+
msgstr ""
|
233 |
+
|
234 |
+
#: classes/class.simple-wp-membership.php:529
|
235 |
+
msgid "Yes, Protect this content."
|
236 |
+
msgstr ""
|
237 |
+
|
238 |
+
#: classes/class.simple-wp-membership.php:532
|
239 |
+
msgid "Select the membership level that can access this content:"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: classes/class.simple-wp-membership.php:673
|
243 |
+
#: classes/class.simple-wp-membership.php:677
|
244 |
+
msgid "Validating, please wait"
|
245 |
+
msgstr "Ça sera pas long :)"
|
246 |
+
|
247 |
+
#: classes/class.simple-wp-membership.php:680
|
248 |
+
msgid "Invalid email address"
|
249 |
+
msgstr "Adresse email invalide"
|
250 |
+
|
251 |
+
#: classes/class.simple-wp-membership.php:683
|
252 |
+
msgid "This field is required"
|
253 |
+
msgstr "Ce champ est requis"
|
254 |
+
|
255 |
+
#: classes/class.simple-wp-membership.php:686
|
256 |
+
msgid "Password must contain at least:"
|
257 |
+
msgstr "Le mot de passe doit contenir au moins:"
|
258 |
+
|
259 |
+
#: classes/class.simple-wp-membership.php:686
|
260 |
+
msgid "- a digit"
|
261 |
+
msgstr "Un chiffre"
|
262 |
+
|
263 |
+
#: classes/class.simple-wp-membership.php:686
|
264 |
+
msgid "- an uppercase letter"
|
265 |
+
msgstr "Une lettre majuscule"
|
266 |
+
|
267 |
+
#: classes/class.simple-wp-membership.php:686
|
268 |
+
msgid "- a lowercase letter"
|
269 |
+
msgstr "Une lettre minuscule"
|
270 |
+
|
271 |
+
#: classes/class.simple-wp-membership.php:689 classes/class.swpm-auth.php:310
|
272 |
+
msgid "Invalid Username"
|
273 |
+
msgstr "Nom d’utilisateur invalide"
|
274 |
+
|
275 |
+
#: classes/class.simple-wp-membership.php:689
|
276 |
+
msgid "Usernames can only contain: letters, numbers and .-_*@"
|
277 |
+
msgstr "Le nom d’utilisateur peut seulement contenir: lettres, nombres et .-*@"
|
278 |
+
|
279 |
+
#: classes/class.simple-wp-membership.php:692
|
280 |
+
msgid "Minimum "
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: classes/class.simple-wp-membership.php:693
|
284 |
+
msgid " characters required"
|
285 |
+
msgstr " caractères requis"
|
286 |
+
|
287 |
+
#: classes/class.simple-wp-membership.php:696
|
288 |
+
msgid "Apostrophe character is not allowed"
|
289 |
+
msgstr "L’apostrophe n’est pas autorisée"
|
290 |
+
|
291 |
+
#: classes/class.simple-wp-membership.php:736
|
292 |
+
msgid "WP Membership"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: classes/class.simple-wp-membership.php:737 classes/class.swpm-members.php:12
|
296 |
+
#: classes/class.swpm-members.php:718
|
297 |
+
msgid "Members"
|
298 |
+
msgstr "Membres"
|
299 |
+
|
300 |
+
#: classes/class.simple-wp-membership.php:738
|
301 |
+
#: classes/class.swpm-category-list.php:20
|
302 |
+
#: classes/class.swpm-membership-levels.php:12
|
303 |
+
#: classes/class.swpm-membership-levels.php:269
|
304 |
+
#: classes/class.swpm-post-list.php:21
|
305 |
+
msgid "Membership Levels"
|
306 |
+
msgstr "Niveau"
|
307 |
+
|
308 |
+
#: classes/class.simple-wp-membership.php:739
|
309 |
+
msgid "Settings"
|
310 |
+
msgstr "Paramètres"
|
311 |
+
|
312 |
+
#: classes/class.simple-wp-membership.php:740
|
313 |
+
msgid "Payments"
|
314 |
+
msgstr "Paiements"
|
315 |
+
|
316 |
+
#: classes/class.simple-wp-membership.php:741
|
317 |
+
msgid "Add-ons"
|
318 |
+
msgstr "Modules complémentaires"
|
319 |
+
|
320 |
+
#: classes/class.swpm-access-control.php:47
|
321 |
+
#: classes/class.swpm-access-control.php:120
|
322 |
+
msgid "You need to login to view this content. "
|
323 |
+
msgstr "Tu dois te connecter pour voir ce contenu "
|
324 |
+
|
325 |
+
#: classes/class.swpm-access-control.php:56
|
326 |
+
#: classes/class.swpm-access-control.php:128
|
327 |
+
#: classes/class.swpm-access-control.php:212
|
328 |
+
msgid "Your account has expired. "
|
329 |
+
msgstr "Ton compte est expiré "
|
330 |
+
|
331 |
+
#: classes/class.swpm-access-control.php:66
|
332 |
+
#: classes/class.swpm-access-control.php:138
|
333 |
+
msgid "This content can only be viewed by members who joined on or before "
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: classes/class.swpm-access-control.php:79
|
337 |
+
#: classes/class.swpm-access-control.php:148
|
338 |
+
msgid "This content is not permitted for your membership level."
|
339 |
+
msgstr "Ce contenu n’est pas autorisé pour ton niveau d’adhésion."
|
340 |
+
|
341 |
+
#: classes/class.swpm-access-control.php:204
|
342 |
+
msgid "You need to login to view the rest of the content. "
|
343 |
+
msgstr "Tu dois te vous connecter pour voir le reste du contenu "
|
344 |
+
|
345 |
+
#: classes/class.swpm-access-control.php:217
|
346 |
+
msgid " The rest of the content is not permitted for your membership level."
|
347 |
+
msgstr " Le reste du contenu n’est pas autorisé pour ton niveau d’adhésion."
|
348 |
+
|
349 |
+
#: classes/class.swpm-admin-registration.php:25
|
350 |
+
msgid "Error! Nonce verification failed for user registration from admin end."
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: classes/class.swpm-admin-registration.php:79
|
354 |
+
msgid "Member record added successfully."
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: classes/class.swpm-admin-registration.php:87
|
358 |
+
#: classes/class.swpm-admin-registration.php:149
|
359 |
+
#: classes/class.swpm-admin-registration.php:187
|
360 |
+
#: classes/class.swpm-membership-level.php:73
|
361 |
+
#: classes/class.swpm-membership-level.php:105
|
362 |
+
msgid "Please correct the following:"
|
363 |
+
msgstr "SVP corriger les éléments suivants:"
|
364 |
+
|
365 |
+
#: classes/class.swpm-admin-registration.php:100
|
366 |
+
msgid "Error! Nonce verification failed for user edit from admin end."
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: classes/class.swpm-admin-registration.php:166
|
370 |
+
msgid "Your current password"
|
371 |
+
msgstr "Ton mot de passe actuel"
|
372 |
+
|
373 |
+
#: classes/class.swpm-ajax.php:14 classes/class.swpm-ajax.php:34
|
374 |
+
#: ipn/swpm-smart-checkout-ipn.php:326
|
375 |
+
msgid "Nonce check failed. Please reload the page."
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#: classes/class.swpm-ajax.php:18
|
379 |
+
msgid "Invalid Email Address"
|
380 |
+
msgstr "Adresse email invalide"
|
381 |
+
|
382 |
+
#: classes/class.swpm-ajax.php:25 classes/class.swpm-ajax.php:44
|
383 |
+
msgid "Already taken"
|
384 |
+
msgstr "Déjà pris"
|
385 |
+
|
386 |
+
#: classes/class.swpm-ajax.php:25 classes/class.swpm-ajax.php:45
|
387 |
+
msgid "Available"
|
388 |
+
msgstr "Disponible"
|
389 |
+
|
390 |
+
#: classes/class.swpm-ajax.php:38
|
391 |
+
msgid "Name contains invalid character"
|
392 |
+
msgstr "Le nom contient des caractères invalides"
|
393 |
+
|
394 |
+
#: classes/class.swpm-auth.php:60
|
395 |
+
msgid ""
|
396 |
+
"Warning! Simple Membership plugin cannot process this login request to "
|
397 |
+
"prevent you from getting logged out of WP Admin accidentally."
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: classes/class.swpm-auth.php:61
|
401 |
+
msgid "Click here"
|
402 |
+
msgstr "Clique ici"
|
403 |
+
|
404 |
+
#: classes/class.swpm-auth.php:61
|
405 |
+
msgid " to see the profile you are currently logged into in this browser."
|
406 |
+
msgstr ""
|
407 |
+
|
408 |
+
#: classes/class.swpm-auth.php:62
|
409 |
+
msgid ""
|
410 |
+
"You are logged into the site as an ADMIN user in this browser. First, logout "
|
411 |
+
"from WP Admin then you will be able to log in as a normal member."
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: classes/class.swpm-auth.php:63
|
415 |
+
msgid ""
|
416 |
+
"Alternatively, you can use a different browser (where you are not logged-in "
|
417 |
+
"as ADMIN) to test the membership login."
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: classes/class.swpm-auth.php:64
|
421 |
+
msgid ""
|
422 |
+
"Your normal visitors or members will never see this message. This message is "
|
423 |
+
"ONLY for ADMIN user."
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: classes/class.swpm-auth.php:71
|
427 |
+
msgid "Captcha validation failed on login form."
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: classes/class.swpm-auth.php:96
|
431 |
+
msgid "User Not Found."
|
432 |
+
msgstr "Utilisateur non trouvé."
|
433 |
+
|
434 |
+
#: classes/class.swpm-auth.php:103
|
435 |
+
msgid "Password Empty or Invalid."
|
436 |
+
msgstr "Mot de passe vide ou invalide."
|
437 |
+
|
438 |
+
#: classes/class.swpm-auth.php:144
|
439 |
+
msgid "Account is inactive."
|
440 |
+
msgstr "Compte est inactif."
|
441 |
+
|
442 |
+
#: classes/class.swpm-auth.php:147 classes/class.swpm-auth.php:176
|
443 |
+
msgid "Account has expired."
|
444 |
+
msgstr "Compte est expiré."
|
445 |
+
|
446 |
+
#: classes/class.swpm-auth.php:150
|
447 |
+
msgid "Account is pending."
|
448 |
+
msgstr "Compte est en attente."
|
449 |
+
|
450 |
+
#: classes/class.swpm-auth.php:160
|
451 |
+
#, php-format
|
452 |
+
msgid ""
|
453 |
+
"You need to activate your account. If you didn't receive an email then %s to "
|
454 |
+
"resend the activation email."
|
455 |
+
msgstr ""
|
456 |
+
"Tu dois activer ton compte. Si tu n’as pas reçu un email, %s pour envoyer un "
|
457 |
+
"nouveau email d’activation."
|
458 |
+
|
459 |
+
#: classes/class.swpm-auth.php:160
|
460 |
+
#: classes/class.swpm-front-registration.php:451
|
461 |
+
#: classes/class.swpm-front-registration.php:504
|
462 |
+
#: classes/class.swpm-utils-misc.php:196
|
463 |
+
msgid "click here"
|
464 |
+
msgstr "clique ici"
|
465 |
+
|
466 |
+
#: classes/class.swpm-auth.php:184
|
467 |
+
msgid "You are logged in as:"
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: classes/class.swpm-auth.php:248
|
471 |
+
msgid "Logged Out Successfully."
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: classes/class.swpm-auth.php:301
|
475 |
+
msgid "Session Expired."
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: classes/class.swpm-auth.php:318
|
479 |
+
msgid "Please login again."
|
480 |
+
msgstr ""
|
481 |
+
|
482 |
+
#: classes/class.swpm-category-list.php:33
|
483 |
+
msgid "Category ID"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: classes/class.swpm-category-list.php:34
|
487 |
+
msgid "Category Name"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: classes/class.swpm-category-list.php:35
|
491 |
+
msgid "Category Type (Taxonomy)"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: classes/class.swpm-category-list.php:36
|
495 |
+
msgid "Description"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: classes/class.swpm-category-list.php:37
|
499 |
+
msgid "Count"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#: classes/class.swpm-category-list.php:78
|
503 |
+
msgid ""
|
504 |
+
"Error! Nonce security verification failed for Category Protection Update "
|
505 |
+
"action. Clear cache and try again."
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: classes/class.swpm-category-list.php:99
|
509 |
+
msgid "Category protection updated!"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: classes/class.swpm-comment-form-related.php:15
|
513 |
+
msgid "Please login to comment."
|
514 |
+
msgstr ""
|
515 |
+
|
516 |
+
#: classes/class.swpm-comment-form-related.php:40
|
517 |
+
msgid "Please Login to Comment."
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: classes/class.swpm-comment-form-related.php:79
|
521 |
+
msgid "Comments not allowed by a non-member."
|
522 |
+
msgstr ""
|
523 |
+
|
524 |
+
#: classes/class.swpm-form.php:30
|
525 |
+
msgid ""
|
526 |
+
"Wordpress account exists with given username. But the given email doesn't "
|
527 |
+
"match."
|
528 |
+
msgstr ""
|
529 |
+
"Un compte WordPress existe avec ce nom d’utilisateur. Mais le email indiqué "
|
530 |
+
"ne correspond pas."
|
531 |
+
|
532 |
+
#: classes/class.swpm-form.php:31
|
533 |
+
msgid ""
|
534 |
+
" Use a different username to complete the registration. If you want to use "
|
535 |
+
"that username then you must enter the correct email address associated with "
|
536 |
+
"the existing WP user to connect with that account."
|
537 |
+
msgstr ""
|
538 |
+
" Utilise un autre nom d’utilisateur pour terminer l’enregistrement. Si tu "
|
539 |
+
"souhaites utiliser ce nom d’utilisateur, tu dois entrer l’adresse e-mail "
|
540 |
+
"correcte associée à l’utilisateur WP existant pour te connecter à ce compte."
|
541 |
+
|
542 |
+
#: classes/class.swpm-form.php:37
|
543 |
+
msgid ""
|
544 |
+
"Wordpress account exists with given email. But the given username doesn't "
|
545 |
+
"match."
|
546 |
+
msgstr ""
|
547 |
+
"Le compte Wordpress existe avec ce email. Mais le nom d’utilisateur donné ne "
|
548 |
+
"correspond pas."
|
549 |
+
|
550 |
+
#: classes/class.swpm-form.php:38
|
551 |
+
msgid ""
|
552 |
+
" Use a different email address to complete the registration. If you want to "
|
553 |
+
"use that email then you must enter the correct username associated with the "
|
554 |
+
"existing WP user to connect with that account."
|
555 |
+
msgstr ""
|
556 |
+
" Utilise une autre adresse email pour terminer l’inscription. Si tu "
|
557 |
+
"souhaites utiliser ce email, tu dois entrer le nom d’utilisateur correct "
|
558 |
+
"associé à l’utilisateur WP existant pour te connecter à ce compte."
|
559 |
+
|
560 |
+
#: classes/class.swpm-form.php:48
|
561 |
+
msgid "Username is required"
|
562 |
+
msgstr "Nom d’utilisateur requis"
|
563 |
+
|
564 |
+
#: classes/class.swpm-form.php:52
|
565 |
+
msgid "Username contains invalid character"
|
566 |
+
msgstr "Le nom d’utilisateur contient un caractère invalide"
|
567 |
+
|
568 |
+
#: classes/class.swpm-form.php:60
|
569 |
+
msgid "Username already exists."
|
570 |
+
msgstr "Le nom d’utilisateur existe déjà."
|
571 |
+
|
572 |
+
#: classes/class.swpm-form.php:81
|
573 |
+
msgid "Password is required"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: classes/class.swpm-form.php:88
|
577 |
+
msgid "Password mismatch"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: classes/class.swpm-form.php:99
|
581 |
+
msgid "Email is required"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: classes/class.swpm-form.php:103
|
585 |
+
msgid "Email is invalid"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: classes/class.swpm-form.php:119
|
589 |
+
msgid "Email is already used."
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#: classes/class.swpm-form.php:171
|
593 |
+
msgid "Member since field is invalid"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: classes/class.swpm-form.php:182
|
597 |
+
msgid "Access starts field is invalid"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: classes/class.swpm-form.php:192
|
601 |
+
msgid "Gender field is invalid"
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: classes/class.swpm-form.php:203
|
605 |
+
msgid "Account state field is invalid"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: classes/class.swpm-form.php:210
|
609 |
+
msgid "Invalid membership level"
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: classes/class.swpm-front-registration.php:26
|
613 |
+
msgid ""
|
614 |
+
"You are already logged in. You don't need to create another account. So the "
|
615 |
+
"registration form is hidden."
|
616 |
+
msgstr ""
|
617 |
+
|
618 |
+
#: classes/class.swpm-front-registration.php:59
|
619 |
+
#: classes/class.swpm-utils-misc.php:364 views/login.php:38
|
620 |
+
msgid "Join Us"
|
621 |
+
msgstr "Joins-toi à nous"
|
622 |
+
|
623 |
+
#: classes/class.swpm-front-registration.php:61
|
624 |
+
msgid ""
|
625 |
+
"Free membership is disabled on this site. Please make a payment from the "
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: classes/class.swpm-front-registration.php:63
|
629 |
+
msgid " page to pay for a premium membership."
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: classes/class.swpm-front-registration.php:65
|
633 |
+
msgid ""
|
634 |
+
"You will receive a unique link via email after the payment. You will be able "
|
635 |
+
"to use that link to complete the premium membership registration."
|
636 |
+
msgstr ""
|
637 |
+
"Vous recevrez un lien unique par e-mail après le paiement. Vous pourrez "
|
638 |
+
"utiliser ce lien pour compléter l’inscription à l’adhésion premium."
|
639 |
+
|
640 |
+
#: classes/class.swpm-front-registration.php:95
|
641 |
+
msgid "Security check: captcha validation failed."
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: classes/class.swpm-front-registration.php:108
|
645 |
+
msgid "You must accept the terms and conditions."
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: classes/class.swpm-front-registration.php:122
|
649 |
+
msgid "You must agree to the privacy policy."
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: classes/class.swpm-front-registration.php:163
|
653 |
+
msgid ""
|
654 |
+
"You need to confirm your email address. Please check your email and follow "
|
655 |
+
"instructions to complete your registration."
|
656 |
+
msgstr ""
|
657 |
+
"Tu dois confirmer ton adresse e-mail. Vérifie tes emails et suis les "
|
658 |
+
"instructions pour terminer ton inscription."
|
659 |
+
|
660 |
+
#: classes/class.swpm-front-registration.php:176
|
661 |
+
msgid "Registration Successful. "
|
662 |
+
msgstr ""
|
663 |
+
|
664 |
+
#: classes/class.swpm-front-registration.php:176
|
665 |
+
#: classes/class.swpm-utils-misc.php:363 classes/class.swpm-utils-misc.php:375
|
666 |
+
msgid "Please"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: classes/class.swpm-front-registration.php:176
|
670 |
+
#: classes/class.swpm-utils-misc.php:363 views/login.php:32
|
671 |
+
msgid "Login"
|
672 |
+
msgstr "Se connecter"
|
673 |
+
|
674 |
+
#: classes/class.swpm-front-registration.php:195
|
675 |
+
msgid "Please correct the following"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: classes/class.swpm-front-registration.php:243
|
679 |
+
msgid "Membership Level Couldn't be found."
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: classes/class.swpm-front-registration.php:295
|
683 |
+
msgid "Error! Nonce verification failed for front end profile edit."
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: classes/class.swpm-front-registration.php:303
|
687 |
+
msgid "Profile updated successfully."
|
688 |
+
msgstr "Le profil a été mis à jour."
|
689 |
+
|
690 |
+
#: classes/class.swpm-front-registration.php:316
|
691 |
+
msgid ""
|
692 |
+
"Profile updated successfully. You will need to re-login since you changed "
|
693 |
+
"your password."
|
694 |
+
msgstr ""
|
695 |
+
|
696 |
+
#: classes/class.swpm-front-registration.php:344
|
697 |
+
msgid "Please correct the following."
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: classes/class.swpm-front-registration.php:360
|
701 |
+
msgid "Captcha validation failed."
|
702 |
+
msgstr ""
|
703 |
+
|
704 |
+
#: classes/class.swpm-front-registration.php:371
|
705 |
+
msgid "Email address not valid."
|
706 |
+
msgstr ""
|
707 |
+
|
708 |
+
#: classes/class.swpm-front-registration.php:385
|
709 |
+
msgid "No user found with that email address."
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: classes/class.swpm-front-registration.php:386
|
713 |
+
#: classes/class.swpm-front-registration.php:418
|
714 |
+
msgid "Email Address: "
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: classes/class.swpm-front-registration.php:417
|
718 |
+
msgid "New password has been sent to your email address."
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: classes/class.swpm-front-registration.php:446
|
722 |
+
msgid "Can't find member account."
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: classes/class.swpm-front-registration.php:451
|
726 |
+
#: classes/class.swpm-front-registration.php:504
|
727 |
+
msgid "Account already active. "
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: classes/class.swpm-front-registration.php:451
|
731 |
+
#: classes/class.swpm-front-registration.php:504
|
732 |
+
msgid " to login."
|
733 |
+
msgstr ""
|
734 |
+
|
735 |
+
#: classes/class.swpm-front-registration.php:458
|
736 |
+
msgid ""
|
737 |
+
"Activation code mismatch. Cannot activate this account. Please contact the "
|
738 |
+
"site admin."
|
739 |
+
msgstr ""
|
740 |
+
|
741 |
+
#: classes/class.swpm-front-registration.php:472
|
742 |
+
msgid "Success! Your account has been activated successfully."
|
743 |
+
msgstr ""
|
744 |
+
|
745 |
+
#: classes/class.swpm-front-registration.php:499
|
746 |
+
msgid "Cannot find member account."
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: classes/class.swpm-front-registration.php:521
|
750 |
+
msgid ""
|
751 |
+
"Activation email has been sent. Please check your email and activate your "
|
752 |
+
"account."
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: classes/class.swpm-init-time-tasks.php:137
|
756 |
+
msgid "Sorry, Nonce verification failed."
|
757 |
+
msgstr ""
|
758 |
+
|
759 |
+
#: classes/class.swpm-init-time-tasks.php:144
|
760 |
+
msgid "Sorry, Password didn't match."
|
761 |
+
msgstr ""
|
762 |
+
|
763 |
+
#: classes/class.swpm-level-form.php:50
|
764 |
+
msgid "Date format is not valid."
|
765 |
+
msgstr ""
|
766 |
+
|
767 |
+
#: classes/class.swpm-level-form.php:58
|
768 |
+
msgid "Access duration must be > 0."
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
+
#: classes/class.swpm-members.php:11
|
772 |
+
msgid "Member"
|
773 |
+
msgstr ""
|
774 |
+
|
775 |
+
#: classes/class.swpm-members.php:21
|
776 |
+
#: classes/class.swpm-membership-levels.php:20
|
777 |
+
msgid "ID"
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
+
#: classes/class.swpm-members.php:22 views/add.php:18 views/admin_add.php:12
|
781 |
+
#: views/admin_edit.php:19 views/edit.php:23
|
782 |
+
#: includes/swpm_mda_show_profile.php:27
|
783 |
+
msgid "Username"
|
784 |
+
msgstr "Nom d’utilisateur"
|
785 |
+
|
786 |
+
#: classes/class.swpm-members.php:25 views/add.php:22 views/edit.php:27
|
787 |
+
#: includes/swpm_mda_show_profile.php:35
|
788 |
+
msgid "Email"
|
789 |
+
msgstr ""
|
790 |
+
|
791 |
+
#: classes/class.swpm-members.php:27 views/admin_member_form_common_part.php:11
|
792 |
+
msgid "Access Starts"
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: classes/class.swpm-members.php:28 views/admin_members_list.php:45
|
796 |
+
#: includes/swpm_mda_show_profile.php:31
|
797 |
+
msgid "Account State"
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: classes/class.swpm-members.php:29
|
801 |
+
msgid "Last Login Date"
|
802 |
+
msgstr ""
|
803 |
+
|
804 |
+
#: classes/class.swpm-members.php:50
|
805 |
+
msgid "Set Status to Active"
|
806 |
+
msgstr ""
|
807 |
+
|
808 |
+
#: classes/class.swpm-members.php:51
|
809 |
+
msgid "Set Status to Active and Notify"
|
810 |
+
msgstr ""
|
811 |
+
|
812 |
+
#: classes/class.swpm-members.php:52
|
813 |
+
msgid "Set Status to Inactive"
|
814 |
+
msgstr ""
|
815 |
+
|
816 |
+
#: classes/class.swpm-members.php:53
|
817 |
+
msgid "Set Status to Pending"
|
818 |
+
msgstr ""
|
819 |
+
|
820 |
+
#: classes/class.swpm-members.php:54
|
821 |
+
msgid "Set Status to Expired"
|
822 |
+
msgstr ""
|
823 |
+
|
824 |
+
#: classes/class.swpm-members.php:80
|
825 |
+
msgid "incomplete"
|
826 |
+
msgstr ""
|
827 |
+
|
828 |
+
#: classes/class.swpm-members.php:221
|
829 |
+
msgid "No member found."
|
830 |
+
msgstr ""
|
831 |
+
|
832 |
+
#: classes/class.swpm-members.php:376
|
833 |
+
msgid "Error! Nonce verification failed for user delete from admin end."
|
834 |
+
msgstr ""
|
835 |
+
|
836 |
+
#: classes/class.swpm-members.php:522
|
837 |
+
msgid ""
|
838 |
+
"Error! Nonce security verification failed for Bulk Change Membership Level "
|
839 |
+
"action. Clear cache and try again."
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: classes/class.swpm-members.php:530 classes/class.swpm-members.php:567
|
843 |
+
msgid "Error! Please select a membership level first."
|
844 |
+
msgstr ""
|
845 |
+
|
846 |
+
#: classes/class.swpm-members.php:547
|
847 |
+
msgid "Membership level change operation completed successfully."
|
848 |
+
msgstr ""
|
849 |
+
|
850 |
+
#: classes/class.swpm-members.php:559
|
851 |
+
msgid ""
|
852 |
+
"Error! Nonce security verification failed for Bulk Change Access Starts Date "
|
853 |
+
"action. Clear cache and try again."
|
854 |
+
msgstr ""
|
855 |
+
|
856 |
+
#: classes/class.swpm-members.php:584
|
857 |
+
msgid "Access starts date change operation successfully completed."
|
858 |
+
msgstr ""
|
859 |
+
|
860 |
+
#: classes/class.swpm-members.php:713
|
861 |
+
msgid "Simple WP Membership::Members"
|
862 |
+
msgstr ""
|
863 |
+
|
864 |
+
#: classes/class.swpm-members.php:714 views/admin_members_list.php:69
|
865 |
+
msgid "Add New"
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: classes/class.swpm-members.php:719 views/admin_add.php:7
|
869 |
+
msgid "Add Member"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: classes/class.swpm-members.php:720
|
873 |
+
msgid "Bulk Operation"
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: classes/class.swpm-membership-level.php:52
|
877 |
+
msgid ""
|
878 |
+
"Error! Nonce verification failed for membership level creation from admin "
|
879 |
+
"end."
|
880 |
+
msgstr ""
|
881 |
+
|
882 |
+
#: classes/class.swpm-membership-level.php:68
|
883 |
+
msgid "Membership Level Creation Successful."
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: classes/class.swpm-membership-level.php:84
|
887 |
+
msgid ""
|
888 |
+
"Error! Nonce verification failed for membership level edit from admin end."
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: classes/class.swpm-membership-level.php:100
|
892 |
+
msgid "Membership Level Updated Successfully."
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: classes/class.swpm-membership-levels.php:22
|
896 |
+
msgid "Role"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: classes/class.swpm-membership-levels.php:23
|
900 |
+
msgid "Access Valid For/Until"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: classes/class.swpm-membership-levels.php:199
|
904 |
+
msgid ""
|
905 |
+
"Error! Nonce verification failed for membership level delete from admin end."
|
906 |
+
msgstr ""
|
907 |
+
|
908 |
+
#: classes/class.swpm-membership-levels.php:218 views/admin_members_list.php:56
|
909 |
+
#: views/payments/admin_all_payment_transactions.php:16 views/template-1.php:53
|
910 |
+
#: views/template-2.php:54
|
911 |
+
msgid "Search"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: classes/class.swpm-membership-levels.php:265
|
915 |
+
msgid "Simple WP Membership::Membership Levels"
|
916 |
+
msgstr ""
|
917 |
+
|
918 |
+
#: classes/class.swpm-membership-levels.php:270
|
919 |
+
msgid "Add Level"
|
920 |
+
msgstr ""
|
921 |
+
|
922 |
+
#: classes/class.swpm-membership-levels.php:271
|
923 |
+
msgid "Manage Content Protection"
|
924 |
+
msgstr ""
|
925 |
+
|
926 |
+
#: classes/class.swpm-membership-levels.php:272
|
927 |
+
msgid "Category Protection"
|
928 |
+
msgstr ""
|
929 |
+
|
930 |
+
#: classes/class.swpm-membership-levels.php:273
|
931 |
+
msgid "Post and Page Protection"
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
|
935 |
+
#: classes/class.swpm-post-list.php:63
|
936 |
+
msgid "Title"
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
|
940 |
+
#: classes/class.swpm-post-list.php:64
|
941 |
+
msgid "Author"
|
942 |
+
msgstr ""
|
943 |
+
|
944 |
+
#: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
|
945 |
+
#: classes/class.swpm-post-list.php:66
|
946 |
+
msgid "Status"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: classes/class.swpm-post-list.php:55
|
950 |
+
msgid "Categories"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: classes/class.swpm-post-list.php:65
|
954 |
+
msgid "Type"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: classes/class.swpm-post-list.php:109
|
958 |
+
msgid ""
|
959 |
+
"Error! Nonce security verification failed for Post Protection Update action. "
|
960 |
+
"Clear cache and try again."
|
961 |
+
msgstr ""
|
962 |
+
|
963 |
+
#: classes/class.swpm-post-list.php:132
|
964 |
+
msgid "Protection settings updated!"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: classes/class.swpm-protection.php:22
|
968 |
+
msgid ""
|
969 |
+
"The category or parent category of this post is protected. You can change "
|
970 |
+
"the category protection settings from the "
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: classes/class.swpm-protection.php:23
|
974 |
+
msgid "category protection menu"
|
975 |
+
msgstr ""
|
976 |
+
|
977 |
+
#: classes/class.swpm-settings.php:25 classes/class.swpm-settings.php:53
|
978 |
+
msgid "General Settings"
|
979 |
+
msgstr ""
|
980 |
+
|
981 |
+
#: classes/class.swpm-settings.php:26
|
982 |
+
msgid "Payment Settings"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: classes/class.swpm-settings.php:27
|
986 |
+
msgid "Email Settings"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: classes/class.swpm-settings.php:28
|
990 |
+
msgid "Tools"
|
991 |
+
msgstr ""
|
992 |
+
|
993 |
+
#: classes/class.swpm-settings.php:29 classes/class.swpm-settings.php:569
|
994 |
+
msgid "Advanced Settings"
|
995 |
+
msgstr ""
|
996 |
+
|
997 |
+
#: classes/class.swpm-settings.php:30
|
998 |
+
msgid "Addons Settings"
|
999 |
+
msgstr ""
|
1000 |
+
|
1001 |
+
#: classes/class.swpm-settings.php:52
|
1002 |
+
msgid "Plugin Documentation"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: classes/class.swpm-settings.php:56
|
1006 |
+
msgid "Enable Free Membership"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: classes/class.swpm-settings.php:62
|
1010 |
+
msgid ""
|
1011 |
+
"Enable/disable registration for free membership level. When you enable this "
|
1012 |
+
"option, make sure to specify a free membership level ID in the field below."
|
1013 |
+
msgstr ""
|
1014 |
+
|
1015 |
+
#: classes/class.swpm-settings.php:67
|
1016 |
+
msgid "Free Membership Level ID"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: classes/class.swpm-settings.php:73
|
1020 |
+
msgid "Assign free membership level ID"
|
1021 |
+
msgstr ""
|
1022 |
+
|
1023 |
+
#: classes/class.swpm-settings.php:78
|
1024 |
+
msgid "Enable More Tag Protection"
|
1025 |
+
msgstr ""
|
1026 |
+
|
1027 |
+
#: classes/class.swpm-settings.php:84
|
1028 |
+
msgid ""
|
1029 |
+
"Enables or disables \"more\" tag protection in the posts and pages. Anything "
|
1030 |
+
"after the More tag is protected. Anything before the more tag is teaser "
|
1031 |
+
"content."
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
+
#: classes/class.swpm-settings.php:89
|
1035 |
+
msgid "Hide Adminbar"
|
1036 |
+
msgstr ""
|
1037 |
+
|
1038 |
+
#: classes/class.swpm-settings.php:95
|
1039 |
+
msgid ""
|
1040 |
+
"WordPress shows an admin toolbar to the logged in users of the site. Check "
|
1041 |
+
"this if you want to hide that admin toolbar in the frontend of your site."
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: classes/class.swpm-settings.php:100
|
1045 |
+
msgid "Show Adminbar to Admin"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#: classes/class.swpm-settings.php:106
|
1049 |
+
msgid ""
|
1050 |
+
"Use this option if you want to show the admin toolbar to admin users only. "
|
1051 |
+
"The admin toolbar will be hidden for all other users."
|
1052 |
+
msgstr ""
|
1053 |
+
|
1054 |
+
#: classes/class.swpm-settings.php:111
|
1055 |
+
msgid "Disable Access to WP Dashboard"
|
1056 |
+
msgstr ""
|
1057 |
+
|
1058 |
+
#: classes/class.swpm-settings.php:117
|
1059 |
+
msgid ""
|
1060 |
+
"WordPress allows a standard wp user to be able to go to the wp-admin URL and "
|
1061 |
+
"access his profile from the wp dashboard. Using this option will prevent any "
|
1062 |
+
"non-admin users from going to the wp dashboard."
|
1063 |
+
msgstr ""
|
1064 |
+
|
1065 |
+
#: classes/class.swpm-settings.php:123 classes/class.swpm-settings.php:761
|
1066 |
+
msgid "Default Account Status"
|
1067 |
+
msgstr ""
|
1068 |
+
|
1069 |
+
#: classes/class.swpm-settings.php:131
|
1070 |
+
msgid ""
|
1071 |
+
"Select the default account status for newly registered users. If you want to "
|
1072 |
+
"manually approve the members then you can set the status to \"Pending\"."
|
1073 |
+
msgstr ""
|
1074 |
+
|
1075 |
+
#: classes/class.swpm-settings.php:137
|
1076 |
+
msgid "Members Must be Logged in to Comment"
|
1077 |
+
msgstr ""
|
1078 |
+
|
1079 |
+
#: classes/class.swpm-settings.php:143
|
1080 |
+
msgid ""
|
1081 |
+
"Enable this option if you only want the members of the site to be able to "
|
1082 |
+
"post a comment."
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: classes/class.swpm-settings.php:154
|
1086 |
+
msgid "Pages Settings"
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: classes/class.swpm-settings.php:157
|
1090 |
+
msgid "Login Page URL"
|
1091 |
+
msgstr ""
|
1092 |
+
|
1093 |
+
#: classes/class.swpm-settings.php:168
|
1094 |
+
msgid "Registration Page URL"
|
1095 |
+
msgstr ""
|
1096 |
+
|
1097 |
+
#: classes/class.swpm-settings.php:179
|
1098 |
+
msgid "Join Us Page URL"
|
1099 |
+
msgstr ""
|
1100 |
+
|
1101 |
+
#: classes/class.swpm-settings.php:190
|
1102 |
+
msgid "Edit Profile Page URL"
|
1103 |
+
msgstr ""
|
1104 |
+
|
1105 |
+
#: classes/class.swpm-settings.php:201
|
1106 |
+
msgid "Password Reset Page URL"
|
1107 |
+
msgstr ""
|
1108 |
+
|
1109 |
+
#: classes/class.swpm-settings.php:211
|
1110 |
+
msgid "Test & Debug Settings"
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: classes/class.swpm-settings.php:213
|
1114 |
+
msgid "Check this option to enable debug logging."
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: classes/class.swpm-settings.php:214
|
1118 |
+
msgid ""
|
1119 |
+
" This can be useful when troubleshooting an issue. Turn it off and reset the "
|
1120 |
+
"log files after the troubleshooting is complete."
|
1121 |
+
msgstr ""
|
1122 |
+
|
1123 |
+
#: classes/class.swpm-settings.php:216
|
1124 |
+
msgid "View general debug log file by clicking "
|
1125 |
+
msgstr ""
|
1126 |
+
|
1127 |
+
#: classes/class.swpm-settings.php:216 classes/class.swpm-settings.php:217
|
1128 |
+
#: classes/class.swpm-settings.php:218
|
1129 |
+
msgid "here"
|
1130 |
+
msgstr ""
|
1131 |
+
|
1132 |
+
#: classes/class.swpm-settings.php:217
|
1133 |
+
msgid "View login related debug log file by clicking "
|
1134 |
+
msgstr ""
|
1135 |
+
|
1136 |
+
#: classes/class.swpm-settings.php:218
|
1137 |
+
msgid "Reset debug log files by clicking "
|
1138 |
+
msgstr ""
|
1139 |
+
|
1140 |
+
#: classes/class.swpm-settings.php:221
|
1141 |
+
msgid "Enable Debug"
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: classes/class.swpm-settings.php:232
|
1145 |
+
msgid "Enable Sandbox Testing"
|
1146 |
+
msgstr ""
|
1147 |
+
|
1148 |
+
#: classes/class.swpm-settings.php:238
|
1149 |
+
msgid "Enable this option if you want to do sandbox payment testing."
|
1150 |
+
msgstr ""
|
1151 |
+
|
1152 |
+
#: classes/class.swpm-settings.php:246
|
1153 |
+
msgid "Stripe Global Settings"
|
1154 |
+
msgstr ""
|
1155 |
+
|
1156 |
+
#: classes/class.swpm-settings.php:249
|
1157 |
+
msgid "Pre-fill Member Email Address"
|
1158 |
+
msgstr ""
|
1159 |
+
|
1160 |
+
#: classes/class.swpm-settings.php:255
|
1161 |
+
msgid ""
|
1162 |
+
"Pre-fills the email address of the logged-in member on the Stripe checkout "
|
1163 |
+
"form when possible"
|
1164 |
+
msgstr ""
|
1165 |
+
|
1166 |
+
#: classes/class.swpm-settings.php:260
|
1167 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
|
1168 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:399
|
1169 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:115
|
1170 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:381
|
1171 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:156
|
1172 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:148
|
1173 |
+
msgid "Test Publishable Key"
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: classes/class.swpm-settings.php:266
|
1177 |
+
msgid "Stripe API Test publishable key"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#: classes/class.swpm-settings.php:271
|
1181 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
|
1182 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:406
|
1183 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:122
|
1184 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:388
|
1185 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:164
|
1186 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:156
|
1187 |
+
msgid "Test Secret Key"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: classes/class.swpm-settings.php:277
|
1191 |
+
msgid "Stripe API Test secret key"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: classes/class.swpm-settings.php:282
|
1195 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
|
1196 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:413
|
1197 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:129
|
1198 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:395
|
1199 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:172
|
1200 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:164
|
1201 |
+
msgid "Live Publishable Key"
|
1202 |
+
msgstr ""
|
1203 |
+
|
1204 |
+
#: classes/class.swpm-settings.php:288
|
1205 |
+
msgid "Stripe API Live publishable key"
|
1206 |
+
msgstr ""
|
1207 |
+
|
1208 |
+
#: classes/class.swpm-settings.php:293
|
1209 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:136
|
1210 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:420
|
1211 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:136
|
1212 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:402
|
1213 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:180
|
1214 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:172
|
1215 |
+
msgid "Live Secret Key"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: classes/class.swpm-settings.php:299
|
1219 |
+
msgid "Stripe API Live secret key"
|
1220 |
+
msgstr ""
|
1221 |
+
|
1222 |
+
#: classes/class.swpm-settings.php:309
|
1223 |
+
msgid "Email Settings Overview"
|
1224 |
+
msgstr ""
|
1225 |
+
|
1226 |
+
#: classes/class.swpm-settings.php:310
|
1227 |
+
msgid "Email Misc. Settings"
|
1228 |
+
msgstr ""
|
1229 |
+
|
1230 |
+
#: classes/class.swpm-settings.php:314
|
1231 |
+
msgid "From Email Address"
|
1232 |
+
msgstr ""
|
1233 |
+
|
1234 |
+
#: classes/class.swpm-settings.php:326
|
1235 |
+
msgid "Allow HTML in Emails"
|
1236 |
+
msgstr ""
|
1237 |
+
|
1238 |
+
#: classes/class.swpm-settings.php:337
|
1239 |
+
msgid "Email Settings (Prompt to Complete Registration )"
|
1240 |
+
msgstr ""
|
1241 |
+
|
1242 |
+
#: classes/class.swpm-settings.php:340 classes/class.swpm-settings.php:371
|
1243 |
+
#: classes/class.swpm-settings.php:452 classes/class.swpm-settings.php:477
|
1244 |
+
#: classes/class.swpm-settings.php:513 classes/class.swpm-settings.php:538
|
1245 |
+
msgid "Email Subject"
|
1246 |
+
msgstr ""
|
1247 |
+
|
1248 |
+
#: classes/class.swpm-settings.php:351 classes/class.swpm-settings.php:382
|
1249 |
+
#: classes/class.swpm-settings.php:463 classes/class.swpm-settings.php:488
|
1250 |
+
#: classes/class.swpm-settings.php:524 classes/class.swpm-settings.php:549
|
1251 |
+
msgid "Email Body"
|
1252 |
+
msgstr ""
|
1253 |
+
|
1254 |
+
#: classes/class.swpm-settings.php:362
|
1255 |
+
msgid ""
|
1256 |
+
"Enter the email address where you want the admin notification email to be "
|
1257 |
+
"sent to."
|
1258 |
+
msgstr ""
|
1259 |
+
|
1260 |
+
#: classes/class.swpm-settings.php:363
|
1261 |
+
msgid ""
|
1262 |
+
" You can put multiple email addresses separated by comma (,) in the above "
|
1263 |
+
"field to send the notification to multiple email addresses."
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: classes/class.swpm-settings.php:365
|
1267 |
+
msgid "Enter the subject for the admin notification email."
|
1268 |
+
msgstr ""
|
1269 |
+
|
1270 |
+
#: classes/class.swpm-settings.php:366
|
1271 |
+
msgid ""
|
1272 |
+
"This email will be sent to the admin when a new user completes the "
|
1273 |
+
"membership registration. Only works if you have enabled the \"Send "
|
1274 |
+
"Notification to Admin\" option above."
|
1275 |
+
msgstr ""
|
1276 |
+
|
1277 |
+
#: classes/class.swpm-settings.php:368
|
1278 |
+
msgid "Email Settings (Registration Complete)"
|
1279 |
+
msgstr ""
|
1280 |
+
|
1281 |
+
#: classes/class.swpm-settings.php:393
|
1282 |
+
msgid "Send Notification to Admin"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: classes/class.swpm-settings.php:399
|
1286 |
+
msgid ""
|
1287 |
+
"Enable this option if you want the admin to receive a notification when a "
|
1288 |
+
"member registers."
|
1289 |
+
msgstr ""
|
1290 |
+
|
1291 |
+
#: classes/class.swpm-settings.php:404
|
1292 |
+
msgid "Admin Email Address"
|
1293 |
+
msgstr ""
|
1294 |
+
|
1295 |
+
#: classes/class.swpm-settings.php:415
|
1296 |
+
msgid "Admin Notification Email Subject"
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
+
#: classes/class.swpm-settings.php:426
|
1300 |
+
msgid "Admin Notification Email Body"
|
1301 |
+
msgstr ""
|
1302 |
+
|
1303 |
+
#: classes/class.swpm-settings.php:438
|
1304 |
+
msgid "Send Email to Member When Added via Admin Dashboard"
|
1305 |
+
msgstr ""
|
1306 |
+
|
1307 |
+
#: classes/class.swpm-settings.php:449
|
1308 |
+
msgid "Email Settings (Password Reset)"
|
1309 |
+
msgstr ""
|
1310 |
+
|
1311 |
+
#: classes/class.swpm-settings.php:474
|
1312 |
+
msgid " Email Settings (Account Upgrade Notification)"
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: classes/class.swpm-settings.php:499
|
1316 |
+
msgid "Disable Email Notification After Upgrade"
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: classes/class.swpm-settings.php:505
|
1320 |
+
msgid ""
|
1321 |
+
"You can use this option to disable the email notification that gets sent to "
|
1322 |
+
"the members when they make a payment for upgrade or renewal."
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: classes/class.swpm-settings.php:510
|
1326 |
+
msgid " Email Settings (Bulk Account Activate Notification)"
|
1327 |
+
msgstr ""
|
1328 |
+
|
1329 |
+
#: classes/class.swpm-settings.php:535
|
1330 |
+
msgid " Email Settings (Email Activation)"
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: classes/class.swpm-settings.php:573
|
1334 |
+
msgid "Enable Expired Account Login"
|
1335 |
+
msgstr ""
|
1336 |
+
|
1337 |
+
#: classes/class.swpm-settings.php:579
|
1338 |
+
msgid ""
|
1339 |
+
"When enabled, expired members will be able to log into the system but won't "
|
1340 |
+
"be able to view any protected content. This allows them to easily renew "
|
1341 |
+
"their account by making another payment."
|
1342 |
+
msgstr ""
|
1343 |
+
|
1344 |
+
#: classes/class.swpm-settings.php:585
|
1345 |
+
msgid "Membership Renewal URL"
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: classes/class.swpm-settings.php:591
|
1349 |
+
msgid ""
|
1350 |
+
"You can create a renewal page for your site. Read <a href=\"https://simple-"
|
1351 |
+
"membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank"
|
1352 |
+
"\">this documentation</a> to learn how to create a renewal page."
|
1353 |
+
msgstr ""
|
1354 |
+
|
1355 |
+
#: classes/class.swpm-settings.php:597
|
1356 |
+
msgid "After Registration Redirect URL"
|
1357 |
+
msgstr ""
|
1358 |
+
|
1359 |
+
#: classes/class.swpm-settings.php:603
|
1360 |
+
msgid ""
|
1361 |
+
"You can enter an URL here to redirect the members to this page after they "
|
1362 |
+
"submit the registration form. Read <a href=\"https://simple-membership-"
|
1363 |
+
"plugin.com/configure-after-registration-redirect-for-members/\" target="
|
1364 |
+
"\"_blank\">this documentation</a> to learn how to setup after registration "
|
1365 |
+
"redirect."
|
1366 |
+
msgstr ""
|
1367 |
+
|
1368 |
+
#: classes/class.swpm-settings.php:609
|
1369 |
+
msgid "Enable Auto Login After Registration"
|
1370 |
+
msgstr ""
|
1371 |
+
|
1372 |
+
#: classes/class.swpm-settings.php:615
|
1373 |
+
msgid ""
|
1374 |
+
"Use this option if you want the members to be automatically logged into your "
|
1375 |
+
"site right after they complete the registration. This option will override "
|
1376 |
+
"any after registration redirection and instead it will trigger the after "
|
1377 |
+
"login redirection. Read <a href=\"https://simple-membership-plugin.com/"
|
1378 |
+
"configure-auto-login-after-registration-members/\" target=\"_blank\">this "
|
1379 |
+
"documentation</a> to learn more."
|
1380 |
+
msgstr ""
|
1381 |
+
|
1382 |
+
#: classes/class.swpm-settings.php:621
|
1383 |
+
msgid "Hide Registration Form to Logged Users"
|
1384 |
+
msgstr ""
|
1385 |
+
|
1386 |
+
#: classes/class.swpm-settings.php:627
|
1387 |
+
msgid ""
|
1388 |
+
"Use this option if you want to hide the registration form to the logged-in "
|
1389 |
+
"members. If logged-in members visit the registration page, they will see a "
|
1390 |
+
"message instead of the registration form."
|
1391 |
+
msgstr ""
|
1392 |
+
|
1393 |
+
#: classes/class.swpm-settings.php:633
|
1394 |
+
msgid "After Logout Redirect URL"
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: classes/class.swpm-settings.php:639
|
1398 |
+
msgid ""
|
1399 |
+
"You can enter an URL here to redirect the members to this page after they "
|
1400 |
+
"click the logout link to logout from your site."
|
1401 |
+
msgstr ""
|
1402 |
+
|
1403 |
+
#: classes/class.swpm-settings.php:645
|
1404 |
+
msgid "Logout Member on Browser Close"
|
1405 |
+
msgstr ""
|
1406 |
+
|
1407 |
+
#: classes/class.swpm-settings.php:651
|
1408 |
+
msgid ""
|
1409 |
+
"Enable this option if you want the member to be logged out of the account "
|
1410 |
+
"when he closes the browser."
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#: classes/class.swpm-settings.php:657
|
1414 |
+
msgid "Allow Account Deletion"
|
1415 |
+
msgstr ""
|
1416 |
+
|
1417 |
+
#: classes/class.swpm-settings.php:663
|
1418 |
+
msgid "Allow users to delete their accounts."
|
1419 |
+
msgstr ""
|
1420 |
+
|
1421 |
+
#: classes/class.swpm-settings.php:669
|
1422 |
+
msgid "Force Strong Password for Members"
|
1423 |
+
msgstr ""
|
1424 |
+
|
1425 |
+
#: classes/class.swpm-settings.php:675
|
1426 |
+
msgid ""
|
1427 |
+
"Enable this if you want the users to be forced to use a strong password for "
|
1428 |
+
"their accounts."
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: classes/class.swpm-settings.php:681
|
1432 |
+
msgid "Auto Delete Pending Account"
|
1433 |
+
msgstr ""
|
1434 |
+
|
1435 |
+
#: classes/class.swpm-settings.php:693
|
1436 |
+
msgid "Select how long you want to keep \"pending\" account."
|
1437 |
+
msgstr ""
|
1438 |
+
|
1439 |
+
#: classes/class.swpm-settings.php:699
|
1440 |
+
msgid "Admin Dashboard Access Permission"
|
1441 |
+
msgstr ""
|
1442 |
+
|
1443 |
+
#: classes/class.swpm-settings.php:712
|
1444 |
+
msgid ""
|
1445 |
+
"SWPM admin dashboard is accessible to admin users only (just like any other "
|
1446 |
+
"plugin). You can allow users with other WP user roles to access the SWPM "
|
1447 |
+
"admin dashboard by selecting a value here. Note that this option cannot work "
|
1448 |
+
"if you enabled the \"Disable Access to WP Dashboard\" option in General "
|
1449 |
+
"Settings."
|
1450 |
+
msgstr ""
|
1451 |
+
|
1452 |
+
#: classes/class.swpm-settings.php:718
|
1453 |
+
msgid "Force WP User Synchronization"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: classes/class.swpm-settings.php:724
|
1457 |
+
msgid ""
|
1458 |
+
"Enable this option if you want to force the member login to be synchronized "
|
1459 |
+
"with WP user account. This can be useful if you are using another plugin "
|
1460 |
+
"that uses WP user records. For example: bbPress plugin."
|
1461 |
+
msgstr ""
|
1462 |
+
|
1463 |
+
#: classes/class.swpm-settings.php:729
|
1464 |
+
msgid "Create Member Accounts for New WP Users"
|
1465 |
+
msgstr ""
|
1466 |
+
|
1467 |
+
#: classes/class.swpm-settings.php:733
|
1468 |
+
msgid "Enable Auto Create Member Accounts"
|
1469 |
+
msgstr ""
|
1470 |
+
|
1471 |
+
#: classes/class.swpm-settings.php:739
|
1472 |
+
msgid ""
|
1473 |
+
"Enable this option to automatically create member accounts for any new WP "
|
1474 |
+
"user that is created by another plugin."
|
1475 |
+
msgstr ""
|
1476 |
+
|
1477 |
+
#: classes/class.swpm-settings.php:746
|
1478 |
+
msgid "Default Membership Level"
|
1479 |
+
msgstr ""
|
1480 |
+
|
1481 |
+
#: classes/class.swpm-settings.php:754
|
1482 |
+
msgid ""
|
1483 |
+
"When automatically creating a member account using this feature, the "
|
1484 |
+
"membership level of the user will be set to the one you specify here."
|
1485 |
+
msgstr ""
|
1486 |
+
|
1487 |
+
#: classes/class.swpm-settings.php:769
|
1488 |
+
msgid ""
|
1489 |
+
"When automatically creating a member account using this feature, the "
|
1490 |
+
"membership account status of the user will be set to the one you specify "
|
1491 |
+
"here."
|
1492 |
+
msgstr ""
|
1493 |
+
|
1494 |
+
#: classes/class.swpm-settings.php:775
|
1495 |
+
msgid "Payment Notification Forward URL"
|
1496 |
+
msgstr ""
|
1497 |
+
|
1498 |
+
#: classes/class.swpm-settings.php:781
|
1499 |
+
msgid ""
|
1500 |
+
"You can enter an URL here to forward the payment notification after the "
|
1501 |
+
"membership payment has been processed by this plugin. Useful if you want to "
|
1502 |
+
"forward the payment notification to an external script for further "
|
1503 |
+
"processing."
|
1504 |
+
msgstr ""
|
1505 |
+
|
1506 |
+
#: classes/class.swpm-settings.php:786 views/add.php:68
|
1507 |
+
msgid "Terms and Conditions"
|
1508 |
+
msgstr ""
|
1509 |
+
|
1510 |
+
#: classes/class.swpm-settings.php:790
|
1511 |
+
msgid "Enable Terms and Conditions"
|
1512 |
+
msgstr ""
|
1513 |
+
|
1514 |
+
#: classes/class.swpm-settings.php:796
|
1515 |
+
msgid "Users must accept the terms before they can complete the registration."
|
1516 |
+
msgstr ""
|
1517 |
+
|
1518 |
+
#: classes/class.swpm-settings.php:801
|
1519 |
+
msgid "Terms and Conditions Page URL"
|
1520 |
+
msgstr ""
|
1521 |
+
|
1522 |
+
#: classes/class.swpm-settings.php:807
|
1523 |
+
msgid ""
|
1524 |
+
"Enter the URL of your terms and conditions page. You can create a WordPress "
|
1525 |
+
"page and specify your terms in there then specify the URL of that page in "
|
1526 |
+
"the above field."
|
1527 |
+
msgstr ""
|
1528 |
+
|
1529 |
+
#: classes/class.swpm-settings.php:812
|
1530 |
+
msgid "Enable Privacy Policy"
|
1531 |
+
msgstr "Activer la politique de confidentialité"
|
1532 |
+
|
1533 |
+
#: classes/class.swpm-settings.php:818
|
1534 |
+
msgid "Users must accept it before they can complete the registration."
|
1535 |
+
msgstr ""
|
1536 |
+
|
1537 |
+
#: classes/class.swpm-settings.php:823
|
1538 |
+
msgid "Privacy Policy Page URL"
|
1539 |
+
msgstr ""
|
1540 |
+
|
1541 |
+
#: classes/class.swpm-settings.php:829
|
1542 |
+
msgid "Enter the URL of your privacy policy page."
|
1543 |
+
msgstr ""
|
1544 |
+
|
1545 |
+
#: classes/class.swpm-settings.php:927
|
1546 |
+
#, php-format
|
1547 |
+
msgid "Visit the %s to read setup and configuration documentation."
|
1548 |
+
msgstr ""
|
1549 |
+
|
1550 |
+
#: classes/class.swpm-settings.php:927
|
1551 |
+
msgid "Simple Membership Plugin Site"
|
1552 |
+
msgstr ""
|
1553 |
+
|
1554 |
+
#: classes/class.swpm-settings.php:928
|
1555 |
+
#, php-format
|
1556 |
+
msgid "Please %s if you like the plugin."
|
1557 |
+
msgstr ""
|
1558 |
+
|
1559 |
+
#: classes/class.swpm-settings.php:928
|
1560 |
+
msgid "give us a rating"
|
1561 |
+
msgstr ""
|
1562 |
+
|
1563 |
+
#: classes/class.swpm-settings.php:945 classes/class.swpm-settings.php:991
|
1564 |
+
#: classes/class.swpm-settings.php:1019
|
1565 |
+
msgid "Settings updated!"
|
1566 |
+
msgstr ""
|
1567 |
+
|
1568 |
+
#: classes/class.swpm-settings.php:980 views/admin_tools_settings.php:82
|
1569 |
+
msgid "This documentation"
|
1570 |
+
msgstr ""
|
1571 |
+
|
1572 |
+
#: classes/class.swpm-settings.php:1034
|
1573 |
+
msgid ""
|
1574 |
+
"Note: You cannot enable both the \"Disable Access to WP Dashboard\" and "
|
1575 |
+
"\"Admin Dashboard Access Permission\" options at the same time. Only use one "
|
1576 |
+
"of those options."
|
1577 |
+
msgstr ""
|
1578 |
+
|
1579 |
+
#: classes/class.swpm-settings.php:1200
|
1580 |
+
msgid "Simple WP Membership::Settings"
|
1581 |
+
msgstr ""
|
1582 |
+
|
1583 |
+
#: classes/class.swpm-utils-member.php:36
|
1584 |
+
#: classes/class.swpm-utils-member.php:44
|
1585 |
+
#: classes/class.swpm-utils-member.php:52
|
1586 |
+
#: classes/class.swpm-utils-member.php:62
|
1587 |
+
#: classes/class.swpm-utils-member.php:68
|
1588 |
+
msgid "User is not logged in."
|
1589 |
+
msgstr ""
|
1590 |
+
|
1591 |
+
#: classes/class.swpm-utils-member.php:88
|
1592 |
+
msgid "No Expiry"
|
1593 |
+
msgstr ""
|
1594 |
+
|
1595 |
+
#: classes/class.swpm-utils-misc.php:57
|
1596 |
+
msgid "Registration"
|
1597 |
+
msgstr ""
|
1598 |
+
|
1599 |
+
#: classes/class.swpm-utils-misc.php:85
|
1600 |
+
msgid "Member Login"
|
1601 |
+
msgstr ""
|
1602 |
+
|
1603 |
+
#: classes/class.swpm-utils-misc.php:113
|
1604 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:135
|
1605 |
+
msgid "Profile"
|
1606 |
+
msgstr ""
|
1607 |
+
|
1608 |
+
#: classes/class.swpm-utils-misc.php:141
|
1609 |
+
msgid "Password Reset"
|
1610 |
+
msgstr "Réinitialisation du mot de passe"
|
1611 |
+
|
1612 |
+
#: classes/class.swpm-utils-misc.php:195
|
1613 |
+
#, php-format
|
1614 |
+
msgid ""
|
1615 |
+
"You will be automatically redirected in a few seconds. If not, please %s."
|
1616 |
+
msgstr ""
|
1617 |
+
"Tu vas être automatiquement redirigé dans quelques secondes. Sinon, %s svp."
|
1618 |
+
|
1619 |
+
#: classes/class.swpm-utils-misc.php:199
|
1620 |
+
msgid "Action Status"
|
1621 |
+
msgstr ""
|
1622 |
+
|
1623 |
+
#: classes/class.swpm-utils-misc.php:364
|
1624 |
+
msgid "Not a Member?"
|
1625 |
+
msgstr "Pas encore membre?"
|
1626 |
+
|
1627 |
+
#: classes/class.swpm-utils-misc.php:375
|
1628 |
+
msgid "renew"
|
1629 |
+
msgstr ""
|
1630 |
+
|
1631 |
+
#: classes/class.swpm-utils-misc.php:375
|
1632 |
+
msgid " your account to gain access to this content."
|
1633 |
+
msgstr ""
|
1634 |
+
|
1635 |
+
#: classes/class.swpm-utils-misc.php:433 classes/class.swpm-utils-misc.php:439
|
1636 |
+
msgid "Error! This action ("
|
1637 |
+
msgstr ""
|
1638 |
+
|
1639 |
+
#: classes/class.swpm-utils-misc.php:680
|
1640 |
+
msgid "(Please Select)"
|
1641 |
+
msgstr "(SVP sélectionner)"
|
1642 |
+
|
1643 |
+
#: classes/class.swpm-utils-misc.php:696
|
1644 |
+
msgid "PayPal Buy Now"
|
1645 |
+
msgstr ""
|
1646 |
+
|
1647 |
+
#: classes/class.swpm-utils-misc.php:697
|
1648 |
+
msgid "PayPal Subscription"
|
1649 |
+
msgstr ""
|
1650 |
+
|
1651 |
+
#: classes/class.swpm-utils-misc.php:698
|
1652 |
+
msgid "PayPal Smart Checkout"
|
1653 |
+
msgstr ""
|
1654 |
+
|
1655 |
+
#: classes/class.swpm-utils-misc.php:699
|
1656 |
+
msgid "Stripe Buy Now"
|
1657 |
+
msgstr ""
|
1658 |
+
|
1659 |
+
#: classes/class.swpm-utils-misc.php:700
|
1660 |
+
msgid "Stripe Subscription"
|
1661 |
+
msgstr ""
|
1662 |
+
|
1663 |
+
#: classes/class.swpm-utils-misc.php:701
|
1664 |
+
msgid "Stripe SCA Buy Now"
|
1665 |
+
msgstr ""
|
1666 |
+
|
1667 |
+
#: classes/class.swpm-utils-misc.php:702
|
1668 |
+
msgid "Stripe SCA Subscription"
|
1669 |
+
msgstr ""
|
1670 |
+
|
1671 |
+
#: classes/class.swpm-utils-misc.php:703
|
1672 |
+
msgid "Braintree Buy Now"
|
1673 |
+
msgstr ""
|
1674 |
+
|
1675 |
+
#: classes/class.swpm-utils-template.php:38
|
1676 |
+
msgid "Error! Failed to find a template path for the specified template: "
|
1677 |
+
msgstr ""
|
1678 |
+
|
1679 |
+
#: classes/class.swpm-utils.php:111
|
1680 |
+
msgid "Never"
|
1681 |
+
msgstr "Jamais"
|
1682 |
+
|
1683 |
+
#: classes/class.swpm-utils.php:119
|
1684 |
+
msgid "Male"
|
1685 |
+
msgstr ""
|
1686 |
+
|
1687 |
+
#: classes/class.swpm-utils.php:120
|
1688 |
+
msgid "Female"
|
1689 |
+
msgstr ""
|
1690 |
+
|
1691 |
+
#: classes/class.swpm-utils.php:121
|
1692 |
+
msgid "Not Specified"
|
1693 |
+
msgstr ""
|
1694 |
+
|
1695 |
+
#: classes/class.swpm-utils.php:126 views/admin_members_list.php:33
|
1696 |
+
msgid "Active"
|
1697 |
+
msgstr "Actif"
|
1698 |
+
|
1699 |
+
#: classes/class.swpm-utils.php:127 views/admin_members_list.php:34
|
1700 |
+
msgid "Inactive"
|
1701 |
+
msgstr "Inactif"
|
1702 |
+
|
1703 |
+
#: classes/class.swpm-utils.php:128 views/admin_members_list.php:35
|
1704 |
+
msgid "Activation Required"
|
1705 |
+
msgstr "Activation requise"
|
1706 |
+
|
1707 |
+
#: classes/class.swpm-utils.php:129 views/admin_members_list.php:36
|
1708 |
+
msgid "Pending"
|
1709 |
+
msgstr "En suspens"
|
1710 |
+
|
1711 |
+
#: classes/class.swpm-utils.php:130 views/admin_members_list.php:38
|
1712 |
+
msgid "Expired"
|
1713 |
+
msgstr "Expiré"
|
1714 |
+
|
1715 |
+
#: classes/class.swpm-utils.php:481 views/account_delete_warning.php:3
|
1716 |
+
msgid "Delete Account"
|
1717 |
+
msgstr ""
|
1718 |
+
|
1719 |
+
#: classes/class.swpm-wp-loaded-tasks.php:118
|
1720 |
+
msgid ""
|
1721 |
+
"You will be redirected to the previous page in a few seconds. If not, please "
|
1722 |
+
"<a href=\"\">click here</a>."
|
1723 |
+
msgstr ""
|
1724 |
+
"Tu vas être redirigé vers la page précédente dans quelques secondes. Sinon, "
|
1725 |
+
"<a href=“”>clique ici</a> svp."
|
1726 |
+
|
1727 |
+
#: classes/class.swpm-wp-loaded-tasks.php:121
|
1728 |
+
msgid "Success!"
|
1729 |
+
msgstr "C’est fait!"
|
1730 |
+
|
1731 |
+
#: classes/class.swpm-wp-loaded-tasks.php:129
|
1732 |
+
msgid "No token provided."
|
1733 |
+
msgstr ""
|
1734 |
+
|
1735 |
+
#: classes/class.swpm-wp-loaded-tasks.php:136
|
1736 |
+
msgid "Nonce check failed."
|
1737 |
+
msgstr ""
|
1738 |
+
|
1739 |
+
#: classes/class.swpm-wp-loaded-tasks.php:161
|
1740 |
+
msgid "Subscription has been cancelled."
|
1741 |
+
msgstr ""
|
1742 |
+
|
1743 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:70
|
1744 |
+
msgid "Your membership profile will be updated to reflect the payment."
|
1745 |
+
msgstr ""
|
1746 |
+
|
1747 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:71
|
1748 |
+
msgid "Your profile username: "
|
1749 |
+
msgstr "Ton nom d’utilisateur "
|
1750 |
+
|
1751 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:89
|
1752 |
+
msgid "Click on the following link to complete the registration."
|
1753 |
+
msgstr ""
|
1754 |
+
|
1755 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:90
|
1756 |
+
msgid "Click here to complete your paid registration"
|
1757 |
+
msgstr "Clique ici pour compléter ton inscription"
|
1758 |
+
|
1759 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:95
|
1760 |
+
msgid ""
|
1761 |
+
"If you have just made a membership payment then your payment is yet to be "
|
1762 |
+
"processed. Please check back in a few minutes. An email will be sent to you "
|
1763 |
+
"with the details shortly."
|
1764 |
+
msgstr ""
|
1765 |
+
|
1766 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:109
|
1767 |
+
msgid "Expiry: "
|
1768 |
+
msgstr ""
|
1769 |
+
|
1770 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:111
|
1771 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:156
|
1772 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:238
|
1773 |
+
msgid "You are not logged-in as a member"
|
1774 |
+
msgstr ""
|
1775 |
+
|
1776 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:133
|
1777 |
+
msgid "Logged in as: "
|
1778 |
+
msgstr "Connecté en tant que "
|
1779 |
+
|
1780 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:136
|
1781 |
+
#: views/loggedin.php:31
|
1782 |
+
msgid "Logout"
|
1783 |
+
msgstr "Se déconnecter"
|
1784 |
+
|
1785 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:139
|
1786 |
+
msgid "Login Here"
|
1787 |
+
msgstr "Se connecter"
|
1788 |
+
|
1789 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:140
|
1790 |
+
msgid "Not a member? "
|
1791 |
+
msgstr "Pas encore membre "
|
1792 |
+
|
1793 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:141
|
1794 |
+
msgid "Join Now"
|
1795 |
+
msgstr "Inscris-toi maintenant"
|
1796 |
+
|
1797 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:218
|
1798 |
+
msgid "Unsubscribe from PayPal"
|
1799 |
+
msgstr ""
|
1800 |
+
|
1801 |
+
#. translators: %1$d is error code; %2$s is error message.
|
1802 |
+
#: ipn/swpm-smart-checkout-ipn.php:264 ipn/swpm-smart-checkout-ipn.php:291
|
1803 |
+
#, php-format
|
1804 |
+
msgid ""
|
1805 |
+
"Error occured during payment verification. Error code: %1$d. Message: %2$s"
|
1806 |
+
msgstr ""
|
1807 |
+
|
1808 |
+
#. translators: %1$s is expected amount, %2$s is expected currency.
|
1809 |
+
#: ipn/swpm-smart-checkout-ipn.php:305
|
1810 |
+
#, php-format
|
1811 |
+
msgid ""
|
1812 |
+
"Payment check failed: invalid amount received. Expected %1$s %2$s, got %3$s "
|
1813 |
+
"%4$s."
|
1814 |
+
msgstr ""
|
1815 |
+
|
1816 |
+
#: ipn/swpm-smart-checkout-ipn.php:341
|
1817 |
+
msgid "Empty payment data received."
|
1818 |
+
msgstr ""
|
1819 |
+
|
1820 |
+
#: ipn/swpm-smart-checkout-ipn.php:400
|
1821 |
+
msgid "IPN product validation failed. Check the debug log for more details."
|
1822 |
+
msgstr ""
|
1823 |
+
|
1824 |
+
#: views/account_delete_warning.php:7
|
1825 |
+
msgid ""
|
1826 |
+
"You are about to delete an account. This will delete user data associated "
|
1827 |
+
"with this account. "
|
1828 |
+
msgstr ""
|
1829 |
+
|
1830 |
+
#: views/account_delete_warning.php:8
|
1831 |
+
msgid "It will also delete the associated WordPress user account."
|
1832 |
+
msgstr ""
|
1833 |
+
|
1834 |
+
#: views/account_delete_warning.php:9
|
1835 |
+
msgid ""
|
1836 |
+
"(NOTE: for safety, we do not allow deletion of any associated WordPress "
|
1837 |
+
"account with administrator role)."
|
1838 |
+
msgstr ""
|
1839 |
+
|
1840 |
+
#: views/account_delete_warning.php:10
|
1841 |
+
msgid "Continue?"
|
1842 |
+
msgstr ""
|
1843 |
+
|
1844 |
+
#: views/account_delete_warning.php:13
|
1845 |
+
msgid "Password: "
|
1846 |
+
msgstr "Mot de passe "
|
1847 |
+
|
1848 |
+
#: views/account_delete_warning.php:14
|
1849 |
+
msgid "Confirm Account Deletion"
|
1850 |
+
msgstr ""
|
1851 |
+
|
1852 |
+
#: views/add.php:26 views/admin_add.php:20 views/admin_edit.php:44
|
1853 |
+
#: views/edit.php:31 views/login.php:19
|
1854 |
+
msgid "Password"
|
1855 |
+
msgstr "Mot de passe"
|
1856 |
+
|
1857 |
+
#: views/add.php:30 views/edit.php:35
|
1858 |
+
msgid "Repeat Password"
|
1859 |
+
msgstr "Répéter le mot de passe"
|
1860 |
+
|
1861 |
+
#: views/add.php:68
|
1862 |
+
msgid "I accept the "
|
1863 |
+
msgstr ""
|
1864 |
+
|
1865 |
+
#: views/add.php:80
|
1866 |
+
msgid "I agree to the "
|
1867 |
+
msgstr ""
|
1868 |
+
|
1869 |
+
#: views/add.php:80
|
1870 |
+
msgid "Privacy Policy"
|
1871 |
+
msgstr ""
|
1872 |
+
|
1873 |
+
#: views/add.php:91
|
1874 |
+
msgid "Register"
|
1875 |
+
msgstr "S’inscrire"
|
1876 |
+
|
1877 |
+
#: views/admin_add.php:8
|
1878 |
+
msgid "Create a brand new user and add it to this site."
|
1879 |
+
msgstr ""
|
1880 |
+
|
1881 |
+
#: views/admin_add.php:12 views/admin_add.php:16 views/admin_add_level.php:12
|
1882 |
+
#: views/admin_add_level.php:16 views/admin_add_level.php:20
|
1883 |
+
#: views/admin_edit.php:19 views/admin_edit.php:40
|
1884 |
+
#: views/admin_edit_level.php:16 views/admin_edit_level.php:20
|
1885 |
+
#: views/admin_edit_level.php:24
|
1886 |
+
msgid "(required)"
|
1887 |
+
msgstr ""
|
1888 |
+
|
1889 |
+
#: views/admin_add.php:16 views/admin_edit.php:40
|
1890 |
+
msgid "E-mail"
|
1891 |
+
msgstr ""
|
1892 |
+
|
1893 |
+
#: views/admin_add.php:20
|
1894 |
+
msgid "(twice, required)"
|
1895 |
+
msgstr ""
|
1896 |
+
|
1897 |
+
#: views/admin_add.php:25 views/admin_edit.php:48
|
1898 |
+
msgid "Strength indicator"
|
1899 |
+
msgstr ""
|
1900 |
+
|
1901 |
+
#: views/admin_add.php:26 views/admin_edit.php:49
|
1902 |
+
msgid ""
|
1903 |
+
"Hint: The password should be at least seven characters long. To make it "
|
1904 |
+
"stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
|
1905 |
+
"$ % ^ & )."
|
1906 |
+
msgstr ""
|
1907 |
+
|
1908 |
+
#: views/admin_add.php:30 views/admin_edit.php:53 views/loggedin.php:10
|
1909 |
+
msgid "Account Status"
|
1910 |
+
msgstr "Status du compte"
|
1911 |
+
|
1912 |
+
#: views/admin_add.php:40
|
1913 |
+
msgid "Add New Member "
|
1914 |
+
msgstr ""
|
1915 |
+
|
1916 |
+
#: views/admin_add_level.php:6
|
1917 |
+
msgid "Add Membership Level"
|
1918 |
+
msgstr ""
|
1919 |
+
|
1920 |
+
#: views/admin_add_level.php:7
|
1921 |
+
msgid "Create new membership level."
|
1922 |
+
msgstr ""
|
1923 |
+
|
1924 |
+
#: views/admin_add_level.php:12 views/admin_edit_level.php:16
|
1925 |
+
msgid "Membership Level Name"
|
1926 |
+
msgstr ""
|
1927 |
+
|
1928 |
+
#: views/admin_add_level.php:16 views/admin_edit_level.php:20
|
1929 |
+
msgid "Default WordPress Role"
|
1930 |
+
msgstr ""
|
1931 |
+
|
1932 |
+
#: views/admin_add_level.php:20 views/admin_edit_level.php:24
|
1933 |
+
msgid "Access Duration"
|
1934 |
+
msgstr ""
|
1935 |
+
|
1936 |
+
#: views/admin_add_level.php:23
|
1937 |
+
msgid "No Expiry (Access for this level will not expire until cancelled"
|
1938 |
+
msgstr ""
|
1939 |
+
|
1940 |
+
#: views/admin_add_level.php:24 views/admin_add_level.php:26
|
1941 |
+
#: views/admin_add_level.php:28 views/admin_add_level.php:30
|
1942 |
+
#: views/admin_edit_level.php:28 views/admin_edit_level.php:31
|
1943 |
+
#: views/admin_edit_level.php:34 views/admin_edit_level.php:37
|
1944 |
+
msgid "Expire After"
|
1945 |
+
msgstr ""
|
1946 |
+
|
1947 |
+
#: views/admin_add_level.php:25 views/admin_edit_level.php:29
|
1948 |
+
msgid "Days (Access expires after given number of days)"
|
1949 |
+
msgstr ""
|
1950 |
+
|
1951 |
+
#: views/admin_add_level.php:27
|
1952 |
+
msgid "Weeks (Access expires after given number of weeks"
|
1953 |
+
msgstr ""
|
1954 |
+
|
1955 |
+
#: views/admin_add_level.php:29 views/admin_edit_level.php:35
|
1956 |
+
msgid "Months (Access expires after given number of months)"
|
1957 |
+
msgstr ""
|
1958 |
+
|
1959 |
+
#: views/admin_add_level.php:31 views/admin_edit_level.php:38
|
1960 |
+
msgid "Years (Access expires after given number of years)"
|
1961 |
+
msgstr ""
|
1962 |
+
|
1963 |
+
#: views/admin_add_level.php:32 views/admin_edit_level.php:40
|
1964 |
+
msgid "Fixed Date Expiry"
|
1965 |
+
msgstr ""
|
1966 |
+
|
1967 |
+
#: views/admin_add_level.php:33 views/admin_edit_level.php:41
|
1968 |
+
msgid "(Access expires on a fixed date)"
|
1969 |
+
msgstr ""
|
1970 |
+
|
1971 |
+
#: views/admin_add_level.php:38 views/admin_edit_level.php:46
|
1972 |
+
msgid "Email Activation"
|
1973 |
+
msgstr "Activation par email"
|
1974 |
+
|
1975 |
+
#: views/admin_add_level.php:43
|
1976 |
+
msgid ""
|
1977 |
+
"Enable new user activation via email. When enabled, members will need to "
|
1978 |
+
"click on an activation link that is sent to their email address to activate "
|
1979 |
+
"the account. Useful for free membership. "
|
1980 |
+
msgstr ""
|
1981 |
+
|
1982 |
+
#: views/admin_add_level.php:44 views/admin_edit_level.php:52
|
1983 |
+
msgid "View Documentation"
|
1984 |
+
msgstr ""
|
1985 |
+
|
1986 |
+
#: views/admin_add_level.php:45 views/admin_edit_level.php:53
|
1987 |
+
msgid "Note:"
|
1988 |
+
msgstr ""
|
1989 |
+
|
1990 |
+
#: views/admin_add_level.php:45
|
1991 |
+
msgid ""
|
1992 |
+
"If enabled, the member's decryptable password is temporarily stored in the "
|
1993 |
+
"database until the account is activated."
|
1994 |
+
msgstr ""
|
1995 |
+
|
1996 |
+
#: views/admin_add_level.php:52
|
1997 |
+
msgid "Add New Membership Level "
|
1998 |
+
msgstr ""
|
1999 |
+
|
2000 |
+
#: views/admin_add_ons_page.php:11
|
2001 |
+
msgid "Simple WP Membership::Add-ons"
|
2002 |
+
msgstr ""
|
2003 |
+
|
2004 |
+
#: views/admin_addon_settings.php:3
|
2005 |
+
msgid ""
|
2006 |
+
"Some of the simple membership plugin's addon settings and options will be "
|
2007 |
+
"displayed here (if you have them)"
|
2008 |
+
msgstr ""
|
2009 |
+
|
2010 |
+
#: views/admin_addon_settings.php:9
|
2011 |
+
msgid "Save Changes"
|
2012 |
+
msgstr ""
|
2013 |
+
|
2014 |
+
#: views/admin_category_list.php:5
|
2015 |
+
msgid ""
|
2016 |
+
"First of all, globally protect the category on your site by selecting "
|
2017 |
+
"\"General Protection\" from the drop-down box below and then select the "
|
2018 |
+
"categories that should be protected from non-logged in users."
|
2019 |
+
msgstr ""
|
2020 |
+
|
2021 |
+
#: views/admin_category_list.php:8
|
2022 |
+
msgid ""
|
2023 |
+
"Next, select an existing membership level from the drop-down box below and "
|
2024 |
+
"then select the categories you want to grant access to (for that particular "
|
2025 |
+
"membership level)."
|
2026 |
+
msgstr ""
|
2027 |
+
|
2028 |
+
#: views/admin_category_list.php:11 views/admin_post_list.php:11
|
2029 |
+
msgid "Read the "
|
2030 |
+
msgstr ""
|
2031 |
+
|
2032 |
+
#: views/admin_category_list.php:11
|
2033 |
+
msgid "category protection documentation"
|
2034 |
+
msgstr ""
|
2035 |
+
|
2036 |
+
#: views/admin_category_list.php:11
|
2037 |
+
msgid "to learn more."
|
2038 |
+
msgstr ""
|
2039 |
+
|
2040 |
+
#: views/admin_category_list.php:21 views/admin_post_list.php:34
|
2041 |
+
msgid "General Protection"
|
2042 |
+
msgstr ""
|
2043 |
+
|
2044 |
+
#: views/admin_edit.php:11
|
2045 |
+
msgid "Edit Member"
|
2046 |
+
msgstr ""
|
2047 |
+
|
2048 |
+
#: views/admin_edit.php:13
|
2049 |
+
msgid "Edit existing member details."
|
2050 |
+
msgstr ""
|
2051 |
+
|
2052 |
+
#: views/admin_edit.php:14
|
2053 |
+
msgid " You are currently editing member with member ID: "
|
2054 |
+
msgstr ""
|
2055 |
+
|
2056 |
+
#: views/admin_edit.php:44
|
2057 |
+
msgid "(twice, leave empty to retain old password)"
|
2058 |
+
msgstr ""
|
2059 |
+
|
2060 |
+
#: views/admin_edit.php:59
|
2061 |
+
msgid ""
|
2062 |
+
"This is the member's account status. If you want to manually activate an "
|
2063 |
+
"expired member's account then read"
|
2064 |
+
msgstr ""
|
2065 |
+
|
2066 |
+
#: views/admin_edit.php:60
|
2067 |
+
msgid "this documentation"
|
2068 |
+
msgstr ""
|
2069 |
+
|
2070 |
+
#: views/admin_edit.php:61
|
2071 |
+
msgid " to learn how to do it."
|
2072 |
+
msgstr ""
|
2073 |
+
|
2074 |
+
#: views/admin_edit.php:66
|
2075 |
+
msgid "Notify User"
|
2076 |
+
msgstr ""
|
2077 |
+
|
2078 |
+
#: views/admin_edit.php:69
|
2079 |
+
msgid ""
|
2080 |
+
"You can use this option to send a quick notification email to this member "
|
2081 |
+
"(the email will be sent when you hit the save button below)."
|
2082 |
+
msgstr ""
|
2083 |
+
|
2084 |
+
#: views/admin_edit.php:75
|
2085 |
+
msgid "Subscriber ID/Reference"
|
2086 |
+
msgstr ""
|
2087 |
+
|
2088 |
+
#: views/admin_edit.php:79
|
2089 |
+
msgid "Expiry Date"
|
2090 |
+
msgstr "Date d’expiration"
|
2091 |
+
|
2092 |
+
#: views/admin_edit.php:86
|
2093 |
+
msgid ""
|
2094 |
+
"This is calculated based on the current membership level assigned to this "
|
2095 |
+
"member and the expiry condition that you have set for that membership level."
|
2096 |
+
msgstr ""
|
2097 |
+
|
2098 |
+
#: views/admin_edit.php:91
|
2099 |
+
msgid "Last Accessed Date"
|
2100 |
+
msgstr ""
|
2101 |
+
|
2102 |
+
#: views/admin_edit.php:94 views/admin_edit.php:101
|
2103 |
+
msgid "This value gets updated when this member logs into your site."
|
2104 |
+
msgstr ""
|
2105 |
+
|
2106 |
+
#: views/admin_edit.php:98
|
2107 |
+
msgid "Last Accessed From IP"
|
2108 |
+
msgstr ""
|
2109 |
+
|
2110 |
+
#: views/admin_edit.php:109
|
2111 |
+
msgid "Save Data"
|
2112 |
+
msgstr ""
|
2113 |
+
|
2114 |
+
#: views/admin_edit.php:114
|
2115 |
+
msgid "Delete User Profile"
|
2116 |
+
msgstr ""
|
2117 |
+
|
2118 |
+
#: views/admin_edit_level.php:6
|
2119 |
+
msgid "Edit membership level"
|
2120 |
+
msgstr ""
|
2121 |
+
|
2122 |
+
#: views/admin_edit_level.php:9
|
2123 |
+
msgid ""
|
2124 |
+
"You can edit details of a selected membership level from this interface. "
|
2125 |
+
msgstr ""
|
2126 |
+
|
2127 |
+
#: views/admin_edit_level.php:10
|
2128 |
+
msgid "You are currently editing: "
|
2129 |
+
msgstr ""
|
2130 |
+
|
2131 |
+
#: views/admin_edit_level.php:27
|
2132 |
+
msgid "No Expiry (Access for this level will not expire until cancelled)"
|
2133 |
+
msgstr ""
|
2134 |
+
|
2135 |
+
#: views/admin_edit_level.php:32
|
2136 |
+
msgid "Weeks (Access expires after given number of weeks)"
|
2137 |
+
msgstr ""
|
2138 |
+
|
2139 |
+
#: views/admin_edit_level.php:51
|
2140 |
+
msgid ""
|
2141 |
+
"Enable new user activation via email. When enabled, members will need to "
|
2142 |
+
"click on an activation link that is sent to their email address to activate "
|
2143 |
+
"the account. Useful for free membership."
|
2144 |
+
msgstr ""
|
2145 |
+
|
2146 |
+
#: views/admin_edit_level.php:53
|
2147 |
+
msgid ""
|
2148 |
+
"If enabled, decryptable member password is temporarily stored in the "
|
2149 |
+
"database until the account is activated."
|
2150 |
+
msgstr ""
|
2151 |
+
|
2152 |
+
#: views/admin_edit_level.php:60
|
2153 |
+
msgid "Save Membership Level "
|
2154 |
+
msgstr ""
|
2155 |
+
|
2156 |
+
#: views/admin_member_form_common_part.php:23
|
2157 |
+
#: includes/swpm_mda_show_profile.php:37
|
2158 |
+
msgid "Gender"
|
2159 |
+
msgstr "Genre"
|
2160 |
+
|
2161 |
+
#: views/admin_member_form_common_part.php:30 views/edit.php:47
|
2162 |
+
#: includes/swpm_mda_show_profile.php:34
|
2163 |
+
msgid "Phone"
|
2164 |
+
msgstr "Téléphone"
|
2165 |
+
|
2166 |
+
#: views/admin_member_form_common_part.php:34 views/edit.php:51
|
2167 |
+
msgid "Street"
|
2168 |
+
msgstr "Rue"
|
2169 |
+
|
2170 |
+
#: views/admin_member_form_common_part.php:38 views/edit.php:55
|
2171 |
+
msgid "City"
|
2172 |
+
msgstr "Ville"
|
2173 |
+
|
2174 |
+
#: views/admin_member_form_common_part.php:42 views/edit.php:59
|
2175 |
+
msgid "State"
|
2176 |
+
msgstr "Province"
|
2177 |
+
|
2178 |
+
#: views/admin_member_form_common_part.php:46 views/edit.php:63
|
2179 |
+
msgid "Zipcode"
|
2180 |
+
msgstr "Code postal"
|
2181 |
+
|
2182 |
+
#: views/admin_member_form_common_part.php:50 views/edit.php:67
|
2183 |
+
#: includes/swpm_mda_show_profile.php:33
|
2184 |
+
msgid "Country"
|
2185 |
+
msgstr "Pays"
|
2186 |
+
|
2187 |
+
#: views/admin_member_form_common_part.php:54
|
2188 |
+
#: includes/swpm_mda_show_profile.php:38
|
2189 |
+
msgid "Company"
|
2190 |
+
msgstr "Companie"
|
2191 |
+
|
2192 |
+
#: views/admin_member_form_common_part.php:58
|
2193 |
+
#: includes/swpm_mda_show_profile.php:36
|
2194 |
+
msgid "Member Since"
|
2195 |
+
msgstr "Membre depuis"
|
2196 |
+
|
2197 |
+
#: views/admin_members_list.php:32
|
2198 |
+
msgid "All"
|
2199 |
+
msgstr "Tout"
|
2200 |
+
|
2201 |
+
#: views/admin_members_list.php:37 views/admin_members_list.php:47
|
2202 |
+
msgid "Incomplete"
|
2203 |
+
msgstr "Incomplet"
|
2204 |
+
|
2205 |
+
#: views/admin_membership_manage.php:19
|
2206 |
+
msgid "Example Content Protection Settings"
|
2207 |
+
msgstr ""
|
2208 |
+
|
2209 |
+
#: views/admin_post_list.php:5
|
2210 |
+
msgid ""
|
2211 |
+
"First of all, globally protect posts and pages on your site by selecting "
|
2212 |
+
"\"General Protection\" from the drop-down box below and then select posts "
|
2213 |
+
"and pages that should be protected from non-logged in users."
|
2214 |
+
msgstr ""
|
2215 |
+
|
2216 |
+
#: views/admin_post_list.php:8
|
2217 |
+
msgid ""
|
2218 |
+
"Next, select an existing membership level from the drop-down box below and "
|
2219 |
+
"then select posts and pages you want to grant access to (for that particular "
|
2220 |
+
"membership level)."
|
2221 |
+
msgstr ""
|
2222 |
+
|
2223 |
+
#: views/admin_post_list.php:11
|
2224 |
+
msgid "bulk protect posts and pages documentation"
|
2225 |
+
msgstr ""
|
2226 |
+
|
2227 |
+
#: views/admin_post_list.php:11
|
2228 |
+
msgid " to learn how to use it."
|
2229 |
+
msgstr ""
|
2230 |
+
|
2231 |
+
#: views/admin_tools_settings.php:14
|
2232 |
+
msgid "The required pages have been re-created."
|
2233 |
+
msgstr ""
|
2234 |
+
|
2235 |
+
#: views/admin_tools_settings.php:21
|
2236 |
+
msgid "Generate a Registration Completion link"
|
2237 |
+
msgstr ""
|
2238 |
+
|
2239 |
+
#: views/admin_tools_settings.php:24
|
2240 |
+
msgid ""
|
2241 |
+
"You can manually generate a registration completion link here and give it to "
|
2242 |
+
"your customer if they have missed the email that was automatically sent out "
|
2243 |
+
"to them after the payment."
|
2244 |
+
msgstr ""
|
2245 |
+
|
2246 |
+
#: views/admin_tools_settings.php:29
|
2247 |
+
msgid "Generate Registration Completion Link"
|
2248 |
+
msgstr ""
|
2249 |
+
|
2250 |
+
#: views/admin_tools_settings.php:32
|
2251 |
+
msgid "OR"
|
2252 |
+
msgstr ""
|
2253 |
+
|
2254 |
+
#: views/admin_tools_settings.php:33
|
2255 |
+
msgid "For All Incomplete Registrations"
|
2256 |
+
msgstr ""
|
2257 |
+
|
2258 |
+
#: views/admin_tools_settings.php:38
|
2259 |
+
msgid "Send Registration Reminder Email Too"
|
2260 |
+
msgstr ""
|
2261 |
+
|
2262 |
+
#: views/admin_tools_settings.php:44
|
2263 |
+
msgid "Submit"
|
2264 |
+
msgstr "Envoyer"
|
2265 |
+
|
2266 |
+
#: views/admin_tools_settings.php:53
|
2267 |
+
msgid ""
|
2268 |
+
"Link(s) generated successfully. The following link(s) can be used to "
|
2269 |
+
"complete the registration."
|
2270 |
+
msgstr ""
|
2271 |
+
|
2272 |
+
#: views/admin_tools_settings.php:55
|
2273 |
+
msgid "Registration completion links will appear below"
|
2274 |
+
msgstr ""
|
2275 |
+
|
2276 |
+
#: views/admin_tools_settings.php:65
|
2277 |
+
msgid "A prompt to complete registration email was also sent."
|
2278 |
+
msgstr ""
|
2279 |
+
|
2280 |
+
#: views/admin_tools_settings.php:78 views/admin_tools_settings.php:88
|
2281 |
+
msgid "Re-create the Required Pages"
|
2282 |
+
msgstr ""
|
2283 |
+
|
2284 |
+
#: views/admin_tools_settings.php:81
|
2285 |
+
msgid ""
|
2286 |
+
"If you have accidentally deleted the required pages that this plugin creates "
|
2287 |
+
"at install time, you can use this option to re-create them."
|
2288 |
+
msgstr ""
|
2289 |
+
|
2290 |
+
#: views/admin_tools_settings.php:82
|
2291 |
+
msgid " has full explanation."
|
2292 |
+
msgstr ""
|
2293 |
+
|
2294 |
+
#: views/edit.php:32 views/edit.php:36
|
2295 |
+
msgid "Leave empty to keep the current password"
|
2296 |
+
msgstr "Laisser vide pour garder le mot de passe actuel"
|
2297 |
+
|
2298 |
+
#: views/edit.php:71
|
2299 |
+
msgid "Company Name"
|
2300 |
+
msgstr "Companie"
|
2301 |
+
|
2302 |
+
#: views/edit.php:84
|
2303 |
+
msgid "Update"
|
2304 |
+
msgstr "Mettre à jour"
|
2305 |
+
|
2306 |
+
#: views/forgot_password.php:12
|
2307 |
+
msgid "Reset Password"
|
2308 |
+
msgstr "Réinitialisation du mot de passe"
|
2309 |
+
|
2310 |
+
#: views/loggedin.php:6
|
2311 |
+
msgid "Logged in as"
|
2312 |
+
msgstr "Connecté en tant que"
|
2313 |
+
|
2314 |
+
#: views/loggedin.php:14
|
2315 |
+
msgid "Membership"
|
2316 |
+
msgstr "Niveau"
|
2317 |
+
|
2318 |
+
#: views/loggedin.php:18
|
2319 |
+
msgid "Account Expiry"
|
2320 |
+
msgstr "Expiration du compte"
|
2321 |
+
|
2322 |
+
#: views/loggedin.php:26
|
2323 |
+
msgid "Edit Profile"
|
2324 |
+
msgstr "Modifier ton profil"
|
2325 |
+
|
2326 |
+
#: views/login.php:26
|
2327 |
+
msgid "Remember Me"
|
2328 |
+
msgstr "Se souvenir de moi"
|
2329 |
+
|
2330 |
+
#: views/login.php:35
|
2331 |
+
msgid "Forgot Password?"
|
2332 |
+
msgstr "Tu as oublié ton mot de passe?"
|
2333 |
+
|
2334 |
+
#: views/payments/admin_add_edit_transaction_manually.php:68
|
2335 |
+
msgid "Add New Transaction"
|
2336 |
+
msgstr ""
|
2337 |
+
|
2338 |
+
#: views/payments/admin_add_edit_transaction_manually.php:99
|
2339 |
+
#: includes/swpm_mda_show_profile.php:26
|
2340 |
+
msgid "Member ID"
|
2341 |
+
msgstr "ID membre"
|
2342 |
+
|
2343 |
+
#: views/payments/admin_add_edit_transaction_manually.php:160
|
2344 |
+
msgid "Save Transaction Data"
|
2345 |
+
msgstr ""
|
2346 |
+
|
2347 |
+
#: views/payments/admin_all_payment_transactions.php:6
|
2348 |
+
msgid "All the payments/transactions of your members are recorded here."
|
2349 |
+
msgstr ""
|
2350 |
+
|
2351 |
+
#: views/payments/admin_all_payment_transactions.php:12
|
2352 |
+
msgid "Search for a transaction by using email or name"
|
2353 |
+
msgstr ""
|
2354 |
+
|
2355 |
+
#: views/payments/admin_all_payment_transactions.php:49
|
2356 |
+
msgid "Add a Transaction Manually"
|
2357 |
+
msgstr ""
|
2358 |
+
|
2359 |
+
#: views/payments/admin_create_payment_buttons.php:17
|
2360 |
+
msgid ""
|
2361 |
+
"You can create a new payment button for your memberships using this "
|
2362 |
+
"interface."
|
2363 |
+
msgstr ""
|
2364 |
+
|
2365 |
+
#: views/payments/admin_create_payment_buttons.php:25
|
2366 |
+
msgid "Select Payment Button Type"
|
2367 |
+
msgstr ""
|
2368 |
+
|
2369 |
+
#: views/payments/admin_create_payment_buttons.php:58
|
2370 |
+
msgid "Next"
|
2371 |
+
msgstr ""
|
2372 |
+
|
2373 |
+
#: views/payments/admin_edit_payment_buttons.php:17
|
2374 |
+
msgid "You can edit a payment button using this interface."
|
2375 |
+
msgstr ""
|
2376 |
+
|
2377 |
+
#: views/payments/admin_payment_buttons.php:6
|
2378 |
+
msgid ""
|
2379 |
+
"All the membership buttons that you created in the plugin are displayed here."
|
2380 |
+
msgstr ""
|
2381 |
+
|
2382 |
+
#: views/payments/admin_payment_settings.php:33
|
2383 |
+
msgid "PayPal Integration Settings"
|
2384 |
+
msgstr ""
|
2385 |
+
|
2386 |
+
#: views/payments/admin_payment_settings.php:36
|
2387 |
+
msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
|
2388 |
+
msgstr ""
|
2389 |
+
|
2390 |
+
#: views/payments/admin_payment_settings.php:39
|
2391 |
+
msgid "Enter the Membership Level ID"
|
2392 |
+
msgstr ""
|
2393 |
+
|
2394 |
+
#: views/payments/admin_payment_settings.php:41
|
2395 |
+
msgid "Generate Code"
|
2396 |
+
msgstr ""
|
2397 |
+
|
2398 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
|
2399 |
+
msgid "Braintree Buy Now Button Configuration"
|
2400 |
+
msgstr ""
|
2401 |
+
|
2402 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
|
2403 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:216
|
2404 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:33
|
2405 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:304
|
2406 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:316
|
2407 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:298
|
2408 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:92
|
2409 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:92
|
2410 |
+
msgid "Button ID"
|
2411 |
+
msgstr ""
|
2412 |
+
|
2413 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
|
2414 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
|
2415 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:224
|
2416 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:41
|
2417 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
|
2418 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:312
|
2419 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:36
|
2420 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:323
|
2421 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:36
|
2422 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:305
|
2423 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:100
|
2424 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:100
|
2425 |
+
msgid "Button Title"
|
2426 |
+
msgstr ""
|
2427 |
+
|
2428 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
|
2429 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
|
2430 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:242
|
2431 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:59
|
2432 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:54
|
2433 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
|
2434 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:54
|
2435 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:321
|
2436 |
+
msgid "Payment Amount"
|
2437 |
+
msgstr ""
|
2438 |
+
|
2439 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
|
2440 |
+
msgid ""
|
2441 |
+
"Braintree API key and account details. You can get this from your Braintree "
|
2442 |
+
"account."
|
2443 |
+
msgstr ""
|
2444 |
+
|
2445 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
|
2446 |
+
msgid "Merchant ID"
|
2447 |
+
msgstr ""
|
2448 |
+
|
2449 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
|
2450 |
+
msgid "Public Key"
|
2451 |
+
msgstr ""
|
2452 |
+
|
2453 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
|
2454 |
+
msgid "Private Key"
|
2455 |
+
msgstr ""
|
2456 |
+
|
2457 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
|
2458 |
+
msgid "Merchant Account ID"
|
2459 |
+
msgstr ""
|
2460 |
+
|
2461 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
|
2462 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:145
|
2463 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:429
|
2464 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:145
|
2465 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:411
|
2466 |
+
msgid "The following details are optional."
|
2467 |
+
msgstr ""
|
2468 |
+
|
2469 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
|
2470 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
|
2471 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:290
|
2472 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:204
|
2473 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
|
2474 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:459
|
2475 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:158
|
2476 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:442
|
2477 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:158
|
2478 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:424
|
2479 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:227
|
2480 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:219
|
2481 |
+
msgid "Return URL"
|
2482 |
+
msgstr ""
|
2483 |
+
|
2484 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:128
|
2485 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:127
|
2486 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:325
|
2487 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:215
|
2488 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:201
|
2489 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:488
|
2490 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:188
|
2491 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:472
|
2492 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:188
|
2493 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:454
|
2494 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:248
|
2495 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:240
|
2496 |
+
msgid "Save Payment Data"
|
2497 |
+
msgstr ""
|
2498 |
+
|
2499 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
|
2500 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:207
|
2501 |
+
msgid "PayPal Buy Now Button Configuration"
|
2502 |
+
msgstr ""
|
2503 |
+
|
2504 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
|
2505 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:250
|
2506 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:67
|
2507 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
|
2508 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:330
|
2509 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:62
|
2510 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
|
2511 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:62
|
2512 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:328
|
2513 |
+
msgid "Payment Currency"
|
2514 |
+
msgstr ""
|
2515 |
+
|
2516 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
|
2517 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:298
|
2518 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
|
2519 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:370
|
2520 |
+
msgid "PayPal Email"
|
2521 |
+
msgstr ""
|
2522 |
+
|
2523 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
|
2524 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:306
|
2525 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
|
2526 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:467
|
2527 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:166
|
2528 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:450
|
2529 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:166
|
2530 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:432
|
2531 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:235
|
2532 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:227
|
2533 |
+
msgid "Button Image URL"
|
2534 |
+
msgstr ""
|
2535 |
+
|
2536 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
|
2537 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:314
|
2538 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
|
2539 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:475
|
2540 |
+
msgid "Custom Checkout Page Logo Image"
|
2541 |
+
msgstr ""
|
2542 |
+
|
2543 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:21
|
2544 |
+
msgid "PayPal Smart Checkout Button Configuration"
|
2545 |
+
msgstr ""
|
2546 |
+
|
2547 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:107
|
2548 |
+
msgid ""
|
2549 |
+
"PayPal Smart Checkout API Credentials (you can get this from your PayPal "
|
2550 |
+
"account)"
|
2551 |
+
msgstr ""
|
2552 |
+
|
2553 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:111
|
2554 |
+
msgid "Live Client ID"
|
2555 |
+
msgstr ""
|
2556 |
+
|
2557 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:119
|
2558 |
+
msgid "Live Secret"
|
2559 |
+
msgstr ""
|
2560 |
+
|
2561 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:127
|
2562 |
+
msgid "Sandbox Client ID"
|
2563 |
+
msgstr ""
|
2564 |
+
|
2565 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:135
|
2566 |
+
msgid "Sandbox Secret"
|
2567 |
+
msgstr ""
|
2568 |
+
|
2569 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:143
|
2570 |
+
msgid "Button Appearance Settings"
|
2571 |
+
msgstr ""
|
2572 |
+
|
2573 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:147
|
2574 |
+
msgid "Size"
|
2575 |
+
msgstr ""
|
2576 |
+
|
2577 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:150
|
2578 |
+
msgid "Medium"
|
2579 |
+
msgstr ""
|
2580 |
+
|
2581 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:151
|
2582 |
+
msgid "Large"
|
2583 |
+
msgstr ""
|
2584 |
+
|
2585 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:152
|
2586 |
+
msgid "Repsonsive"
|
2587 |
+
msgstr ""
|
2588 |
+
|
2589 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:154
|
2590 |
+
msgid "Select button size."
|
2591 |
+
msgstr ""
|
2592 |
+
|
2593 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:158
|
2594 |
+
msgid "Color"
|
2595 |
+
msgstr ""
|
2596 |
+
|
2597 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:161
|
2598 |
+
msgid "Gold"
|
2599 |
+
msgstr ""
|
2600 |
+
|
2601 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:162
|
2602 |
+
msgid "Blue"
|
2603 |
+
msgstr ""
|
2604 |
+
|
2605 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:163
|
2606 |
+
msgid "Silver"
|
2607 |
+
msgstr ""
|
2608 |
+
|
2609 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:164
|
2610 |
+
msgid "Black"
|
2611 |
+
msgstr ""
|
2612 |
+
|
2613 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:166
|
2614 |
+
msgid "Select button color."
|
2615 |
+
msgstr ""
|
2616 |
+
|
2617 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:170
|
2618 |
+
msgid "Shape"
|
2619 |
+
msgstr ""
|
2620 |
+
|
2621 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:172
|
2622 |
+
msgid "Rectangular"
|
2623 |
+
msgstr ""
|
2624 |
+
|
2625 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:173
|
2626 |
+
msgid "Pill"
|
2627 |
+
msgstr ""
|
2628 |
+
|
2629 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:174
|
2630 |
+
msgid "Select button shape."
|
2631 |
+
msgstr ""
|
2632 |
+
|
2633 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:178
|
2634 |
+
msgid "Layout"
|
2635 |
+
msgstr ""
|
2636 |
+
|
2637 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:180
|
2638 |
+
msgid "Vertical"
|
2639 |
+
msgstr ""
|
2640 |
+
|
2641 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:181
|
2642 |
+
msgid "Horizontal"
|
2643 |
+
msgstr ""
|
2644 |
+
|
2645 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:182
|
2646 |
+
msgid "Select button layout."
|
2647 |
+
msgstr ""
|
2648 |
+
|
2649 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:187
|
2650 |
+
msgid "Additional Settings"
|
2651 |
+
msgstr ""
|
2652 |
+
|
2653 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:191
|
2654 |
+
msgid "Payment Methods"
|
2655 |
+
msgstr ""
|
2656 |
+
|
2657 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:193
|
2658 |
+
msgid "PayPal Credit"
|
2659 |
+
msgstr ""
|
2660 |
+
|
2661 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:194
|
2662 |
+
msgid "ELV"
|
2663 |
+
msgstr ""
|
2664 |
+
|
2665 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:195
|
2666 |
+
msgid ""
|
2667 |
+
"Select payment methods that could be used by customers. Note that payment "
|
2668 |
+
"with cards is always enabled."
|
2669 |
+
msgstr ""
|
2670 |
+
|
2671 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:200
|
2672 |
+
msgid "The following details are optional"
|
2673 |
+
msgstr ""
|
2674 |
+
|
2675 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
|
2676 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:298
|
2677 |
+
msgid "PayPal Subscription Button Configuration"
|
2678 |
+
msgstr ""
|
2679 |
+
|
2680 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
|
2681 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:378
|
2682 |
+
msgid "Billing Amount Each Cycle"
|
2683 |
+
msgstr ""
|
2684 |
+
|
2685 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
|
2686 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:386
|
2687 |
+
msgid "Billing Cycle"
|
2688 |
+
msgstr ""
|
2689 |
+
|
2690 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
|
2691 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:399
|
2692 |
+
msgid "Billing Cycle Count"
|
2693 |
+
msgstr ""
|
2694 |
+
|
2695 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
|
2696 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:407
|
2697 |
+
msgid "Re-attempt on Failure"
|
2698 |
+
msgstr ""
|
2699 |
+
|
2700 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
|
2701 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:422
|
2702 |
+
msgid ""
|
2703 |
+
"Trial Billing Details (Leave empty if you are not offering a trial period)"
|
2704 |
+
msgstr ""
|
2705 |
+
|
2706 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
|
2707 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:428
|
2708 |
+
msgid "Trial Billing Amount"
|
2709 |
+
msgstr ""
|
2710 |
+
|
2711 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
|
2712 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:436
|
2713 |
+
msgid "Trial Billing Period"
|
2714 |
+
msgstr ""
|
2715 |
+
|
2716 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
|
2717 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:453
|
2718 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:213
|
2719 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:205
|
2720 |
+
msgid "Optional Details"
|
2721 |
+
msgstr ""
|
2722 |
+
|
2723 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:26
|
2724 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:307
|
2725 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:289
|
2726 |
+
msgid "Stripe Buy Now Button Configuration"
|
2727 |
+
msgstr ""
|
2728 |
+
|
2729 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:102
|
2730 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:386
|
2731 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:102
|
2732 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:368
|
2733 |
+
msgid "Stripe API keys. You can get this from your Stripe account."
|
2734 |
+
msgstr ""
|
2735 |
+
|
2736 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:107
|
2737 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:391
|
2738 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:107
|
2739 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:373
|
2740 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:148
|
2741 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:140
|
2742 |
+
msgid "Use Global API Keys Settings"
|
2743 |
+
msgstr ""
|
2744 |
+
|
2745 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:110
|
2746 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:394
|
2747 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:110
|
2748 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:376
|
2749 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:151
|
2750 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:143
|
2751 |
+
msgid ""
|
2752 |
+
"Use API keys from <a href=\"admin.php?"
|
2753 |
+
"page=simple_wp_membership_settings&tab=2\" target=\"_blank\">Payment "
|
2754 |
+
"Settings</a> tab."
|
2755 |
+
msgstr ""
|
2756 |
+
|
2757 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:150
|
2758 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:434
|
2759 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:150
|
2760 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:416
|
2761 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:219
|
2762 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:211
|
2763 |
+
msgid "Collect Customer Address"
|
2764 |
+
msgstr ""
|
2765 |
+
|
2766 |
+
#: views/payments/payment-gateway/admin_stripe_sca_buy_now_button.php:26
|
2767 |
+
msgid "Stripe SCA Buy Now Button Configuration"
|
2768 |
+
msgstr ""
|
2769 |
+
|
2770 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:84
|
2771 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:84
|
2772 |
+
msgid "Stripe Subscription Button Configuration"
|
2773 |
+
msgstr ""
|
2774 |
+
|
2775 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:118
|
2776 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:118
|
2777 |
+
msgid "Stripe API ID"
|
2778 |
+
msgstr ""
|
2779 |
+
|
2780 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:129
|
2781 |
+
msgid "Trial Period"
|
2782 |
+
msgstr ""
|
2783 |
+
|
2784 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:142
|
2785 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:134
|
2786 |
+
msgid "Stripe API Settings"
|
2787 |
+
msgstr ""
|
2788 |
+
|
2789 |
+
#: views/payments/payment-gateway/admin_stripe_sca_subscription_button.php:188
|
2790 |
+
msgid "Webhook Endpoint URL"
|
2791 |
+
msgstr ""
|
2792 |
+
|
2793 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:180
|
2794 |
+
msgid "Webook Endpoint URL"
|
2795 |
+
msgstr ""
|
2796 |
+
|
2797 |
+
#: views/payments/payment-gateway/braintree_button_shortcode_view.php:21
|
2798 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:100
|
2799 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:102
|
2800 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:15
|
2801 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
|
2802 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:161
|
2803 |
+
#: views/payments/payment-gateway/stripe_sca_button_shortcode_view.php:20
|
2804 |
+
#: views/payments/payment-gateway/stripe_sca_button_shortcode_view.php:144
|
2805 |
+
msgid "Buy Now"
|
2806 |
+
msgstr "Payer maintenant"
|
2807 |
+
|
2808 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:235
|
2809 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:237
|
2810 |
+
msgid "Subscribe Now"
|
2811 |
+
msgstr "Inscris-toi maintenant"
|
2812 |
+
|
2813 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:149
|
2814 |
+
msgid "Error occurred during PayPal Smart Checkout process."
|
2815 |
+
msgstr ""
|
2816 |
+
|
2817 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:178
|
2818 |
+
msgid "HTTP error occurred during payment process:"
|
2819 |
+
msgstr ""
|
2820 |
+
|
2821 |
+
#: Translation strings from addons === Form builder addon
|
2822 |
+
msgid "Type password here"
|
2823 |
+
msgstr "Écrire le mot de passe ici"
|
2824 |
+
|
2825 |
+
msgid "Retype password here"
|
2826 |
+
msgstr "Ré-écrire le mot de passe ici"
|
2827 |
+
|
2828 |
+
msgid "Registration is complete. You can now log into the site."
|
2829 |
+
msgstr "Ton inscription est complète. Tu peux maintenant te connecter au site."
|
2830 |
+
|
2831 |
+
msgid " Field has invalid character"
|
2832 |
+
msgstr " Caractères invalides"
|
2833 |
+
|
2834 |
+
msgid " Password does not match"
|
2835 |
+
msgstr " Les mots de passe sont différents"
|
2836 |
+
|
2837 |
+
msgid "Already taken."
|
2838 |
+
msgstr "Déjà pris."
|
2839 |
+
|
2840 |
+
msgid "Street Address"
|
2841 |
+
msgstr "Rue"
|
2842 |
+
|
2843 |
+
msgid "Apt, Suite, Bldg. (optional)"
|
2844 |
+
msgstr ""
|
2845 |
+
|
2846 |
+
msgid "State / Province / Region"
|
2847 |
+
msgstr ""
|
2848 |
+
|
2849 |
+
msgid "Postal / Zip Code"
|
2850 |
+
msgstr ""
|
2851 |
+
|
2852 |
+
msgid ""
|
2853 |
+
"Check this box to delete the image. The image will be deleted when you save "
|
2854 |
+
"the profile."
|
2855 |
+
msgstr ""
|
2856 |
+
|
2857 |
+
msgid "You will need to re-login since you changed your password."
|
2858 |
+
msgstr "Tu vas devoir te re-connecter puisque tu as changé ton mot de passe."
|
2859 |
+
|
2860 |
+
msgid ""
|
2861 |
+
"Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
|
2862 |
+
msgstr ""
|
2863 |
+
|
2864 |
+
msgid "Verification"
|
2865 |
+
msgstr "Vérification"
|
2866 |
+
|
2867 |
+
msgid "Please enter any two digits with no spaces (Example: 12)*"
|
2868 |
+
msgstr ""
|
2869 |
+
|
2870 |
+
msgid "Username can only contain: letters, numbers and .-*@"
|
2871 |
+
msgstr "Le nom d’utilisateur peut seulement contenir: lettres, nombres et .-*@"
|
2872 |
+
|
2873 |
+
msgid "Allowed characters are: letters, numbers and .-_*@"
|
2874 |
+
msgstr "Les caractères permis sont: lettres, nombres et .-*@"
|
2875 |
+
|
2876 |
+
msgid "Please check at least one."
|
2877 |
+
msgstr "SVP en cocher au moins un."
|
2878 |
+
|
2879 |
+
#: === Partial protection addon strings
|
2880 |
+
msgid "You do not have permission to view this content."
|
2881 |
+
msgstr "Tu n’as pas la permission de voir ce contenu."
|
2882 |
+
|
2883 |
+
msgid "Your membership level does not have permission to view this content."
|
2884 |
+
msgstr ""
|
2885 |
+
"Ton niveau d’inscription ne te donne pas la permission de voir ce contenu."
|
2886 |
+
|
2887 |
+
msgid "This content is for members only."
|
2888 |
+
msgstr "Ce contenu est pour les membres seulement."
|
2889 |
+
|
2890 |
+
#: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
|
2891 |
+
msgid "Member Directory"
|
2892 |
+
msgstr ""
|
2893 |
+
|
2894 |
+
#: includes/swpm_mda_show_profile.php:30
|
2895 |
+
msgid "Level"
|
2896 |
+
msgstr "Niveau"
|
2897 |
+
|
2898 |
+
#: includes/swpm_mda_show_profile.php:32
|
2899 |
+
msgid "Address"
|
2900 |
+
msgstr "Adresse"
|
2901 |
+
|
2902 |
+
#: views/template-1.php:52 views/template-2.php:53
|
2903 |
+
msgid "Search..."
|
2904 |
+
msgstr "Rechercher…"
|
2905 |
+
|
2906 |
+
#: views/template-1.php:60 views/template-2.php:62
|
2907 |
+
msgid "Clear Search"
|
2908 |
+
msgstr "Recherche d’effacement"
|
2909 |
+
|
2910 |
+
# === Misc Shortcodes Addon ===
|
2911 |
+
msgid "You must be logged in to upgrade a membership."
|
2912 |
+
msgstr "Vous devez être connecté pour mettre à niveau un abonnement."
|
2913 |
+
|
2914 |
+
msgid "Membership level has been updated."
|
2915 |
+
msgstr "Le niveau d’adhésion a été mis à jour."
|
2916 |
+
|
2917 |
+
msgid "Already a member of this level."
|
2918 |
+
msgstr "Déjà membre de ce niveau."
|
languages/simple-membership-nb_NO.mo
CHANGED
Binary file
|
languages/simple-membership-nb_NO.po
CHANGED
@@ -1,935 +1,2586 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: Simple Membership\n"
|
4 |
-
"POT-Creation-Date: 2015-01-27 14:50+1000\n"
|
5 |
-
"PO-Revision-Date: 2017-01-02 12:41+0100\n"
|
6 |
-
"Last-Translator: Tom Nordstrønen <tom.nordstronen@me.com>\n"
|
7 |
-
"Language-Team: \n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit
|
12 |
-
"
|
13 |
-
"
|
|
|
|
|
|
|
|
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
-
"Language: da_DK\n"
|
16 |
-
"X-Poedit-SearchPath-0: .\n"
|
17 |
|
18 |
-
#:
|
19 |
-
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
msgid "You need to login to view this content. "
|
22 |
msgstr "Du må logge inn for å se dette innholdet. "
|
23 |
|
24 |
-
#:
|
25 |
-
#:
|
26 |
-
#:
|
27 |
-
msgid "
|
28 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
-
#:
|
31 |
-
|
32 |
-
|
|
|
33 |
|
34 |
-
#:
|
35 |
-
#: simple-membership/classes/class.bAccessControl.php:94
|
36 |
msgid "You need to login to view the rest of the content. "
|
37 |
msgstr "Du må logge inn for å se resten av innholdet. "
|
38 |
|
39 |
-
#:
|
40 |
-
msgid "
|
41 |
-
msgstr "
|
42 |
|
43 |
-
#:
|
44 |
-
|
45 |
-
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
msgid "Please correct the following:"
|
48 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
#:
|
51 |
-
|
52 |
-
|
53 |
-
msgstr "Er alt i bruk"
|
54 |
|
55 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
msgid "Available"
|
57 |
msgstr "Tilgjengelig"
|
58 |
|
59 |
-
#:
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
msgid "User Not Found."
|
62 |
-
msgstr "Bruker
|
63 |
|
64 |
-
#:
|
65 |
msgid "Password Empty or Invalid."
|
66 |
msgstr "Passordet er tomt eller ugyldig."
|
67 |
|
68 |
-
#:
|
69 |
msgid "Account is inactive."
|
70 |
msgstr "Kontoen er inaktiv."
|
71 |
|
72 |
-
#:
|
73 |
msgid "Account has expired."
|
74 |
msgstr "Kontoen er utløpt."
|
75 |
|
76 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
msgid "You are logged in as:"
|
78 |
-
msgstr "Du er
|
79 |
|
80 |
-
#:
|
81 |
msgid "Logged Out Successfully."
|
82 |
-
msgstr "
|
83 |
|
84 |
-
#:
|
85 |
msgid "Session Expired."
|
86 |
-
msgstr "
|
87 |
-
|
88 |
-
#:
|
89 |
-
msgid "
|
90 |
-
msgstr "
|
91 |
-
|
92 |
-
#:
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
#:
|
97 |
-
#:
|
98 |
-
#:
|
99 |
-
#:
|
100 |
-
#:
|
101 |
-
#:
|
102 |
-
#:
|
|
|
|
|
|
|
|
|
103 |
msgid "Membership Level"
|
104 |
-
msgstr "
|
105 |
|
106 |
-
#:
|
107 |
-
|
108 |
-
|
109 |
-
msgid "Membership Levels"
|
110 |
-
msgstr "Medlemsnivåer"
|
111 |
|
112 |
-
#:
|
113 |
-
|
114 |
-
|
115 |
-
msgid "ID"
|
116 |
-
msgstr "ID"
|
117 |
|
118 |
-
#:
|
119 |
-
msgid "
|
120 |
-
msgstr "
|
121 |
|
122 |
-
#:
|
123 |
msgid "Description"
|
124 |
msgstr "Beskrivelse"
|
125 |
|
126 |
-
#:
|
127 |
msgid "Count"
|
128 |
-
msgstr "
|
129 |
|
130 |
-
#:
|
131 |
-
msgid "
|
132 |
-
msgstr "
|
133 |
|
134 |
-
#:
|
135 |
-
msgid ""
|
136 |
-
"
|
137 |
-
msgstr ""
|
138 |
-
"Wordpress kontoen finnes med dette brukernavnet, men epost adressen stemmer "
|
139 |
-
"ikke."
|
140 |
|
141 |
-
#:
|
142 |
-
msgid ""
|
143 |
-
"
|
144 |
-
|
145 |
-
|
146 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
|
148 |
-
#:
|
149 |
-
msgid "
|
150 |
-
msgstr "
|
151 |
|
152 |
-
#:
|
153 |
-
msgid "
|
154 |
-
msgstr "
|
155 |
|
156 |
-
#:
|
157 |
-
msgid "
|
158 |
-
msgstr "
|
159 |
|
160 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
msgid "Password is required"
|
162 |
-
msgstr "Passord er
|
163 |
|
164 |
-
#:
|
165 |
msgid "Password mismatch"
|
166 |
-
msgstr "
|
167 |
|
168 |
-
#:
|
169 |
msgid "Email is required"
|
170 |
-
msgstr "
|
171 |
|
172 |
-
#:
|
173 |
msgid "Email is invalid"
|
174 |
-
msgstr "
|
175 |
|
176 |
-
#:
|
177 |
msgid "Email is already used."
|
178 |
-
msgstr "
|
179 |
|
180 |
-
#:
|
181 |
msgid "Member since field is invalid"
|
182 |
msgstr "Medlem siden feltet er ugyldig"
|
183 |
|
184 |
-
#:
|
185 |
msgid "Access starts field is invalid"
|
186 |
-
msgstr "
|
187 |
|
188 |
-
#:
|
189 |
msgid "Gender field is invalid"
|
190 |
-
msgstr "Kjønnsfeltet er ugyldig
|
191 |
|
192 |
-
#:
|
193 |
msgid "Account state field is invalid"
|
194 |
-
msgstr "
|
195 |
|
196 |
-
#:
|
197 |
msgid "Invalid membership level"
|
198 |
-
msgstr "Ugyldig
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
msgid "Registration Successful. "
|
202 |
msgstr "Registrering fullført. "
|
203 |
|
204 |
-
#:
|
205 |
-
#:
|
206 |
msgid "Please"
|
207 |
msgstr "Vennligst"
|
208 |
|
209 |
-
#:
|
210 |
-
#:
|
211 |
-
#: simple-membership/views/login.php:21
|
212 |
msgid "Login"
|
213 |
-
msgstr "Logg
|
214 |
|
215 |
-
#:
|
216 |
-
#: simple-membership/classes/class.bFrontRegistration.php:152
|
217 |
msgid "Please correct the following"
|
218 |
msgstr "Vennligst korriger følgende"
|
219 |
|
220 |
-
#:
|
221 |
msgid "Membership Level Couldn't be found."
|
222 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
|
224 |
-
#:
|
225 |
-
msgid "
|
226 |
-
msgstr "
|
227 |
|
228 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
msgid "New password has been sent to your email address."
|
230 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
|
232 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
msgid "Date format is not valid."
|
234 |
-
msgstr "Datoformatet er
|
235 |
|
236 |
-
#:
|
237 |
msgid "Access duration must be > 0."
|
238 |
-
msgstr "Tilgangsvarighet må være
|
239 |
|
240 |
-
#:
|
241 |
msgid "Member"
|
242 |
msgstr "Medlem"
|
243 |
|
244 |
-
#:
|
245 |
-
#:
|
246 |
-
msgid "
|
247 |
-
msgstr "
|
248 |
|
249 |
-
#:
|
250 |
-
#:
|
251 |
-
|
|
|
252 |
msgstr "Brukernavn"
|
253 |
|
254 |
-
#:
|
255 |
-
#:
|
256 |
-
#:
|
257 |
-
#:
|
258 |
msgid "First Name"
|
259 |
msgstr "Fornavn"
|
260 |
|
261 |
-
#:
|
262 |
-
#:
|
263 |
-
#:
|
264 |
-
#:
|
265 |
msgid "Last Name"
|
266 |
msgstr "Etternavn"
|
267 |
|
268 |
-
#:
|
269 |
-
#:
|
270 |
msgid "Email"
|
271 |
-
msgstr "
|
272 |
|
273 |
-
#:
|
274 |
-
#: simple-membership/views/admin_member_form_common_part.php:11
|
275 |
msgid "Access Starts"
|
276 |
msgstr "Tilgang starter"
|
277 |
|
278 |
-
#:
|
279 |
msgid "Account State"
|
280 |
-
msgstr "
|
281 |
|
282 |
-
#:
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
msgid "Delete"
|
285 |
msgstr "Slett"
|
286 |
|
287 |
-
#:
|
288 |
-
msgid "
|
289 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
|
291 |
-
#:
|
|
|
|
|
|
|
|
|
292 |
msgid "Membership Level Creation Successful."
|
293 |
-
msgstr "
|
|
|
|
|
|
|
|
|
294 |
|
295 |
-
#:
|
296 |
-
msgid "Updated Successfully."
|
297 |
-
msgstr "
|
298 |
|
299 |
-
#:
|
300 |
msgid "Role"
|
301 |
msgstr "Rolle"
|
302 |
|
303 |
-
#:
|
304 |
msgid "Access Valid For/Until"
|
305 |
-
msgstr "
|
306 |
|
307 |
-
#:
|
308 |
-
msgid "
|
309 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
|
311 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
msgid "General Settings"
|
313 |
-
msgstr "
|
|
|
|
|
|
|
|
|
314 |
|
315 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
msgid "Enable Free Membership"
|
317 |
-
msgstr "
|
318 |
|
319 |
-
#:
|
320 |
-
msgid "Enable/disable registration for free membership level"
|
321 |
-
msgstr "
|
322 |
|
323 |
-
#:
|
324 |
msgid "Free Membership Level ID"
|
325 |
-
msgstr "Gratis
|
326 |
|
327 |
-
#:
|
328 |
msgid "Assign free membership level ID"
|
329 |
-
msgstr "Tildel gratis
|
330 |
|
331 |
-
#:
|
332 |
msgid "Enable More Tag Protection"
|
333 |
-
msgstr "
|
334 |
|
335 |
-
#:
|
336 |
-
msgid ""
|
337 |
-
"
|
338 |
-
"after the More tag is protected. Anything before the more tag is teaser "
|
339 |
-
"content."
|
340 |
-
msgstr ""
|
341 |
-
"Tillat eller stopp \"more\" tag beskyttelse i innlegg og sider. Alt etter "
|
342 |
-
"'mer' tag vil være beskyttet. Alt før 'mer' tag vises."
|
343 |
|
344 |
-
#:
|
345 |
msgid "Hide Adminbar"
|
346 |
-
msgstr "Skjul
|
347 |
|
348 |
-
#:
|
349 |
-
msgid ""
|
350 |
-
"WordPress
|
351 |
-
|
352 |
-
|
353 |
-
"
|
354 |
-
"
|
|
|
|
|
|
|
|
|
355 |
|
356 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
msgid "Default Account Status"
|
358 |
-
msgstr "Standard
|
359 |
|
360 |
-
#:
|
361 |
-
msgid ""
|
362 |
-
"
|
363 |
-
|
364 |
-
|
365 |
-
"
|
366 |
-
"
|
367 |
|
368 |
-
#:
|
|
|
|
|
|
|
|
|
369 |
msgid "Pages Settings"
|
370 |
-
msgstr "
|
371 |
|
372 |
-
#:
|
373 |
msgid "Login Page URL"
|
374 |
-
msgstr "
|
375 |
|
376 |
-
#:
|
377 |
msgid "Registration Page URL"
|
378 |
-
msgstr "
|
379 |
|
380 |
-
#:
|
381 |
msgid "Join Us Page URL"
|
382 |
-
msgstr "Bli
|
383 |
|
384 |
-
#:
|
385 |
msgid "Edit Profile Page URL"
|
386 |
-
msgstr "
|
387 |
|
388 |
-
#:
|
389 |
msgid "Password Reset Page URL"
|
390 |
-
msgstr "
|
391 |
|
392 |
-
#:
|
393 |
msgid "Test & Debug Settings"
|
394 |
-
msgstr "Test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
395 |
|
396 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
397 |
msgid "Enable Sandbox Testing"
|
398 |
-
msgstr "
|
399 |
|
400 |
-
#:
|
401 |
msgid "Enable this option if you want to do sandbox payment testing."
|
402 |
-
msgstr "
|
403 |
|
404 |
-
#:
|
|
|
|
|
|
|
|
|
405 |
msgid "Email Misc. Settings"
|
406 |
-
msgstr "Diverse
|
407 |
|
408 |
-
#:
|
409 |
msgid "From Email Address"
|
410 |
-
msgstr "
|
411 |
|
412 |
-
#:
|
413 |
msgid "Email Settings (Prompt to Complete Registration )"
|
414 |
-
msgstr "
|
415 |
|
416 |
-
#:
|
417 |
-
#:
|
418 |
-
#:
|
419 |
msgid "Email Subject"
|
420 |
-
msgstr "
|
421 |
|
422 |
-
#:
|
423 |
-
#:
|
424 |
-
#:
|
425 |
msgid "Email Body"
|
426 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
427 |
|
428 |
-
#:
|
429 |
msgid "Email Settings (Registration Complete)"
|
430 |
-
msgstr "
|
431 |
|
432 |
-
#:
|
433 |
-
msgid "Send Notification
|
434 |
-
msgstr "Send
|
435 |
|
436 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
msgid "Send Email to Member When Added via Admin Dashboard"
|
438 |
-
msgstr "Send
|
439 |
|
440 |
-
#:
|
|
|
|
|
|
|
|
|
441 |
msgid " Email Settings (Account Upgrade Notification)"
|
442 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
|
444 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
445 |
msgid "Not a Member?"
|
446 |
-
msgstr "Ikke medlem?"
|
447 |
|
448 |
-
#:
|
449 |
-
|
450 |
-
|
451 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
|
453 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
msgid "Active"
|
455 |
msgstr "Aktiv"
|
456 |
|
457 |
-
#:
|
458 |
msgid "Inactive"
|
459 |
-
msgstr "
|
460 |
|
461 |
-
#:
|
|
|
|
|
|
|
|
|
462 |
msgid "Pending"
|
463 |
msgstr "Avventer"
|
464 |
|
465 |
-
#:
|
466 |
msgid "Expired"
|
467 |
msgstr "Utløpt"
|
468 |
|
469 |
-
#:
|
470 |
-
msgid "
|
471 |
-
msgstr "
|
472 |
|
473 |
-
#:
|
474 |
-
msgid "
|
475 |
-
msgstr "
|
476 |
|
477 |
-
#:
|
478 |
-
msgid "
|
479 |
-
msgstr "
|
480 |
|
481 |
-
#:
|
482 |
-
msgid "
|
483 |
-
msgstr "
|
484 |
|
485 |
-
#:
|
486 |
-
msgid "
|
487 |
-
msgstr "
|
488 |
|
489 |
-
#:
|
490 |
-
msgid "
|
491 |
-
msgstr "
|
492 |
|
493 |
-
#:
|
494 |
-
|
495 |
-
|
|
|
|
|
496 |
|
497 |
-
#:
|
498 |
-
msgid "Simple Membership
|
499 |
-
msgstr "
|
500 |
|
501 |
-
#:
|
502 |
-
msgid "
|
503 |
-
msgstr "
|
504 |
|
505 |
-
#:
|
506 |
-
msgid "
|
507 |
-
msgstr "
|
508 |
|
509 |
-
#:
|
510 |
-
|
511 |
-
|
|
|
512 |
|
513 |
-
#:
|
514 |
-
|
515 |
-
|
|
|
516 |
|
517 |
-
#:
|
518 |
-
msgid "
|
519 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
520 |
|
521 |
-
#:
|
522 |
-
|
523 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
524 |
msgid "Password"
|
525 |
msgstr "Passord"
|
526 |
|
527 |
-
#:
|
528 |
msgid "Repeat Password"
|
529 |
msgstr "Gjenta passord"
|
530 |
|
531 |
-
#:
|
532 |
-
msgid "
|
533 |
-
msgstr "
|
534 |
|
535 |
-
#:
|
536 |
-
msgid "
|
537 |
-
msgstr "
|
538 |
|
539 |
-
#:
|
540 |
-
msgid "
|
541 |
-
msgstr "
|
542 |
|
543 |
-
#:
|
544 |
-
msgid "
|
545 |
-
msgstr "
|
546 |
|
547 |
-
#:
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
#:
|
552 |
-
#:
|
553 |
-
#:
|
554 |
-
#:
|
555 |
-
#:
|
556 |
-
#: simple-membership/views/admin_edit_level.php:18
|
557 |
msgid "(required)"
|
558 |
-
msgstr "(
|
559 |
|
560 |
-
#:
|
561 |
-
#: simple-membership/views/admin_edit.php:13
|
562 |
msgid "E-mail"
|
563 |
-
msgstr "
|
564 |
|
565 |
-
#:
|
566 |
msgid "(twice, required)"
|
567 |
-
msgstr "(to ganger,
|
568 |
|
569 |
-
#:
|
570 |
-
#: simple-membership/views/admin_edit.php:21
|
571 |
msgid "Strength indicator"
|
572 |
msgstr "Styrkeindikator"
|
573 |
|
574 |
-
#:
|
575 |
-
|
576 |
-
|
577 |
-
"Hint: The password should be at least seven characters long. To make it "
|
578 |
-
"stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
|
579 |
-
"$ % ^ & )."
|
580 |
-
msgstr ""
|
581 |
-
"Råd: Passordet bør være minst syv tegn langt. For at gjøre det sterkere, "
|
582 |
-
"bruk store og små bokstaver, tall og symboler som ! \" ? $ % ^ & )."
|
583 |
|
584 |
-
#:
|
585 |
-
#: simple-membership/views/admin_edit.php:26
|
586 |
-
#: simple-membership/views/loggedin.php:7
|
587 |
msgid "Account Status"
|
588 |
-
msgstr "
|
589 |
|
590 |
-
#:
|
591 |
msgid "Add New Member "
|
592 |
msgstr "Legg til nytt medlem "
|
593 |
|
594 |
-
#:
|
595 |
-
|
596 |
-
|
597 |
-
#: simple-membership/views/admin_tools_settings.php:2
|
598 |
-
msgid "Simple WP Membership::Settings"
|
599 |
-
msgstr "Simple WP Membership::innstillinger"
|
600 |
|
601 |
-
#:
|
602 |
-
msgid ""
|
603 |
-
"
|
604 |
-
"displayed here (if you have them)"
|
605 |
-
msgstr ""
|
606 |
-
"Noen av Simple Membership plugin innstillingene vil bli vist her (dersom du "
|
607 |
-
"har dem)."
|
608 |
|
609 |
-
#:
|
|
|
|
|
|
|
|
|
610 |
msgid "Create new membership level."
|
611 |
msgstr "Opprett nytt medlemsnivå."
|
612 |
|
613 |
-
#:
|
614 |
-
#: simple-membership/views/admin_edit_level.php:10
|
615 |
msgid "Membership Level Name"
|
616 |
-
msgstr "
|
617 |
|
618 |
-
#:
|
619 |
-
#: simple-membership/views/admin_edit_level.php:14
|
620 |
msgid "Default WordPress Role"
|
621 |
-
msgstr "Standard WordPress
|
622 |
|
623 |
-
#:
|
624 |
-
#: simple-membership/views/admin_edit_level.php:18
|
625 |
msgid "Access Duration"
|
626 |
-
msgstr "
|
627 |
|
628 |
-
#:
|
629 |
msgid "No Expiry (Access for this level will not expire until cancelled"
|
630 |
-
msgstr ""
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
#:
|
635 |
-
#:
|
636 |
-
#: simple-membership/views/admin_add_level.php:27
|
637 |
-
#: simple-membership/views/admin_add_level.php:29
|
638 |
-
#: simple-membership/views/admin_edit_level.php:22
|
639 |
-
#: simple-membership/views/admin_edit_level.php:25
|
640 |
-
#: simple-membership/views/admin_edit_level.php:28
|
641 |
-
#: simple-membership/views/admin_edit_level.php:31
|
642 |
msgid "Expire After"
|
643 |
msgstr "Utløper etter"
|
644 |
|
645 |
-
#:
|
646 |
-
#: simple-membership/views/admin_edit_level.php:23
|
647 |
msgid "Days (Access expires after given number of days)"
|
648 |
-
msgstr "Dager (
|
649 |
|
650 |
-
#:
|
651 |
msgid "Weeks (Access expires after given number of weeks"
|
652 |
-
msgstr "Uker (
|
653 |
|
654 |
-
#:
|
655 |
-
#: simple-membership/views/admin_edit_level.php:29
|
656 |
msgid "Months (Access expires after given number of months)"
|
657 |
-
msgstr "Måneder (
|
658 |
|
659 |
-
#:
|
660 |
-
#: simple-membership/views/admin_edit_level.php:32
|
661 |
msgid "Years (Access expires after given number of years)"
|
662 |
-
msgstr "År (
|
663 |
|
664 |
-
#:
|
665 |
-
#: simple-membership/views/admin_edit_level.php:34
|
666 |
msgid "Fixed Date Expiry"
|
667 |
-
msgstr "
|
668 |
|
669 |
-
#:
|
670 |
-
#: simple-membership/views/admin_edit_level.php:35
|
671 |
msgid "(Access expires on a fixed date)"
|
672 |
-
msgstr "(
|
|
|
|
|
|
|
|
|
673 |
|
674 |
-
#:
|
675 |
-
msgid "
|
676 |
-
msgstr "
|
677 |
|
678 |
-
#:
|
679 |
-
msgid "
|
680 |
-
msgstr "
|
681 |
|
682 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
683 |
msgid "Add New Membership Level "
|
684 |
-
msgstr "
|
685 |
|
686 |
-
#:
|
687 |
msgid "Simple WP Membership::Add-ons"
|
688 |
-
msgstr "
|
689 |
|
690 |
-
#:
|
691 |
-
msgid "
|
692 |
-
msgstr "
|
693 |
|
694 |
-
#:
|
695 |
-
msgid ""
|
696 |
-
"
|
697 |
-
"\"General Protection\" from the drop-down box below and then select the "
|
698 |
-
"categories that should be protected from non-logged in users."
|
699 |
-
msgstr ""
|
700 |
-
"Først velger du global beskyttelse av kategorien på din internetside ved å "
|
701 |
-
"velge \"Generell beskyttelse\" fra dropdown boksen nedenfor, velg deretter "
|
702 |
-
"kategorien(e) som skal beskyttes mot brukere som ikke er logget inn."
|
703 |
|
704 |
-
#:
|
705 |
-
msgid ""
|
706 |
-
"
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
"
|
711 |
-
"velg så de kategoriene du ønsker å gi tilgang til (for det aktuelle "
|
712 |
-
"medlemsnivået)."
|
713 |
|
714 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
715 |
msgid "Edit Member"
|
716 |
-
msgstr "
|
717 |
|
718 |
-
#:
|
719 |
msgid "Edit existing member details."
|
720 |
-
msgstr "
|
721 |
|
722 |
-
#:
|
723 |
-
msgid "
|
724 |
-
msgstr "
|
725 |
|
726 |
-
#:
|
727 |
msgid "(twice, leave empty to retain old password)"
|
728 |
-
msgstr "(to ganger, la
|
729 |
|
730 |
-
#:
|
731 |
-
msgid "
|
732 |
-
msgstr "
|
733 |
|
734 |
-
#:
|
735 |
-
msgid "
|
736 |
-
msgstr "
|
737 |
|
738 |
-
#:
|
739 |
-
msgid "
|
740 |
-
msgstr "
|
741 |
|
742 |
-
#:
|
743 |
-
msgid "
|
744 |
-
msgstr "
|
745 |
|
746 |
-
#:
|
747 |
-
msgid "
|
748 |
-
msgstr ""
|
749 |
-
"Utløper aldri (adgang til dette nivået utløper ikke med mindre det slettes)."
|
750 |
|
751 |
-
#:
|
752 |
-
msgid "
|
753 |
-
msgstr "
|
754 |
|
755 |
-
#:
|
756 |
-
msgid "
|
757 |
-
msgstr "
|
758 |
|
759 |
-
#:
|
760 |
-
msgid ""
|
761 |
-
"
|
762 |
-
msgstr ""
|
763 |
-
"Kun tillat tilgang til beskyttede innlegg som ble publisert etter at "
|
764 |
-
"medlemmet ble registert."
|
765 |
|
766 |
-
#:
|
767 |
-
msgid "
|
768 |
-
msgstr "
|
769 |
|
770 |
-
#:
|
771 |
-
msgid "
|
772 |
-
msgstr "
|
773 |
|
774 |
-
#:
|
775 |
-
|
776 |
-
|
777 |
-
msgid "Add New"
|
778 |
-
msgstr "Opprett ny"
|
779 |
|
780 |
-
#:
|
781 |
-
|
782 |
-
|
783 |
-
msgstr "søk"
|
784 |
|
785 |
-
#:
|
786 |
-
msgid "
|
787 |
-
msgstr "
|
788 |
|
789 |
-
#:
|
790 |
-
msgid "
|
791 |
-
msgstr "
|
792 |
|
793 |
-
#:
|
794 |
-
msgid "
|
795 |
-
msgstr "
|
796 |
|
797 |
-
#:
|
798 |
-
msgid "
|
799 |
-
msgstr "
|
800 |
|
801 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
msgid "Example Content Protection Settings"
|
803 |
-
msgstr "Eksempel
|
|
|
|
|
|
|
|
|
804 |
|
805 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
806 |
msgid "Gender"
|
807 |
msgstr "Kjønn"
|
808 |
|
809 |
-
#:
|
810 |
-
#:
|
811 |
msgid "Phone"
|
812 |
msgstr "Telefon"
|
813 |
|
814 |
-
#:
|
815 |
-
#: simple-membership/views/edit.php:32
|
816 |
msgid "Street"
|
817 |
-
msgstr "Gate
|
818 |
|
819 |
-
#:
|
820 |
-
#: simple-membership/views/edit.php:36
|
821 |
msgid "City"
|
822 |
-
msgstr "By
|
823 |
|
824 |
-
#:
|
825 |
-
#: simple-membership/views/edit.php:40
|
826 |
msgid "State"
|
827 |
-
msgstr "
|
828 |
|
829 |
-
#:
|
830 |
-
#: simple-membership/views/edit.php:44
|
831 |
msgid "Zipcode"
|
832 |
-
msgstr "
|
833 |
|
834 |
-
#:
|
835 |
-
#:
|
836 |
msgid "Country"
|
837 |
msgstr "Land"
|
838 |
|
839 |
-
#:
|
|
|
840 |
msgid "Company"
|
841 |
-
msgstr "
|
842 |
|
843 |
-
#:
|
|
|
844 |
msgid "Member Since"
|
845 |
msgstr "Medlem siden"
|
846 |
|
847 |
-
#:
|
848 |
-
msgid "
|
849 |
-
msgstr "
|
850 |
|
851 |
-
#:
|
852 |
-
msgid "
|
853 |
-
msgstr "
|
854 |
|
855 |
-
#:
|
856 |
-
msgid "
|
857 |
-
msgstr "
|
858 |
|
859 |
-
#:
|
860 |
-
msgid "
|
861 |
-
msgstr "
|
862 |
|
863 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
864 |
msgid "Generate a Registration Completion link"
|
865 |
msgstr "Generer en link for fullføring av registrering"
|
866 |
|
867 |
-
#:
|
868 |
-
msgid ""
|
869 |
-
"
|
870 |
-
"your customer if they have missed the email that was automatically sent out "
|
871 |
-
"to them after the payment."
|
872 |
-
msgstr ""
|
873 |
-
"Du kan generere en registrerings fullføringslink manuelt her og gi det til "
|
874 |
-
"ditt medlem, hvis medlemmet ikke har fått epost, som ble sendt automatisk "
|
875 |
-
"umiddelbart etter betaling."
|
876 |
|
877 |
-
#:
|
878 |
msgid "Generate Registration Completion Link"
|
879 |
-
msgstr "Generer
|
|
|
|
|
|
|
|
|
880 |
|
881 |
-
#:
|
882 |
msgid "OR"
|
883 |
msgstr "ELLER"
|
884 |
|
885 |
-
#:
|
886 |
-
msgid "For All
|
887 |
-
msgstr "For alle
|
888 |
|
889 |
-
#:
|
890 |
-
msgid "Registration
|
891 |
-
msgstr "
|
892 |
|
893 |
-
#:
|
894 |
-
msgid "Send Registration Reminder Email too"
|
895 |
-
msgstr "Send også epost med påminnelse om registrering"
|
896 |
-
|
897 |
-
#: simple-membership/views/admin_tools_settings.php:34
|
898 |
msgid "Submit"
|
899 |
-
msgstr "
|
900 |
|
901 |
-
#:
|
902 |
-
msgid "
|
903 |
-
msgstr "
|
904 |
|
905 |
-
#:
|
906 |
-
msgid "
|
907 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
908 |
|
909 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
910 |
msgid "Reset Password"
|
911 |
-
msgstr "
|
912 |
|
913 |
-
#:
|
914 |
msgid "Logged in as"
|
915 |
-
msgstr "
|
916 |
|
917 |
-
#:
|
918 |
msgid "Membership"
|
919 |
msgstr "Medlemskap"
|
920 |
|
921 |
-
#:
|
922 |
msgid "Account Expiry"
|
923 |
-
msgstr "
|
924 |
|
925 |
-
#:
|
926 |
-
msgid "
|
927 |
-
msgstr "
|
928 |
|
929 |
-
#:
|
|
|
|
|
|
|
|
|
930 |
msgid "Remember Me"
|
931 |
msgstr "Husk meg"
|
932 |
|
933 |
-
#:
|
934 |
-
msgid "Forgot Password"
|
935 |
-
msgstr "Glemt passord"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
3 |
"MIME-Version: 1.0\n"
|
4 |
"Content-Type: text/plain; charset=UTF-8\n"
|
5 |
"Content-Transfer-Encoding: 8bit\n"
|
6 |
+
"X-Generator: Poedit 2.3.1\n"
|
7 |
+
"Project-Id-Version: Bing\n"
|
8 |
+
"Language: nb_NO\n"
|
9 |
+
"POT-Creation-Date: \n"
|
10 |
+
"PO-Revision-Date: \n"
|
11 |
+
"Last-Translator: \n"
|
12 |
+
"Language-Team: \n"
|
13 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
|
|
|
14 |
|
15 |
+
#: classes/class.simple-wp-membership.php:180
|
16 |
+
msgid "The admin of this site does not allow users to access the wp dashboard."
|
17 |
+
msgstr "Administratoren for dette området tillater ikke brukere å få tilgang til wp-instrumentbordet."
|
18 |
+
|
19 |
+
#: classes/class.simple-wp-membership.php:181
|
20 |
+
msgid "Go back to the home page by "
|
21 |
+
msgstr "Gå tilbake til hjemmesiden ved å "
|
22 |
+
|
23 |
+
#: classes/class.simple-wp-membership.php:181
|
24 |
+
msgid "clicking here"
|
25 |
+
msgstr "klikke her"
|
26 |
+
|
27 |
+
#: classes/class.simple-wp-membership.php:242
|
28 |
+
msgid "Error! This site has the force WP user login feature enabled in the settings. We could not find a WP user record for the given username: "
|
29 |
+
msgstr "Feil! Dette nettstedet har force WP bruker påloggingsfunksjonen aktivert i innstillingene. Vi kunne ikke finne en WP-brukeroppføring for det gitte brukernavnet: "
|
30 |
+
|
31 |
+
#: classes/class.simple-wp-membership.php:243
|
32 |
+
msgid "This error is triggered when a member account doesn't have a corresponding WP user account. So the plugin fails to log the user into the WP User system."
|
33 |
+
msgstr "Denne feilen utløses når en medlemskonto ikke har en tilsvarende WP-brukerkonto. Så plugin unnlater å logge brukeren inn i WP Brukersystemet."
|
34 |
+
|
35 |
+
#: classes/class.simple-wp-membership.php:244
|
36 |
+
msgid "Contact the site admin and request them to check your username in the WP Users menu to see what happened with the WP user entry of your account."
|
37 |
+
msgstr "Kontakt nettstedadministratoren og be dem om å sjekke brukernavnet ditt i WP-brukere-menyen for å se hva som skjedde med WP-brukeroppføringen til kontoen din."
|
38 |
+
|
39 |
+
#: classes/class.simple-wp-membership.php:245
|
40 |
+
msgid "The site admin can disable the Force WP User Synchronization feature in the settings to disable this feature and this error will go away."
|
41 |
+
msgstr "Nettstedsadministratoren kan deaktivere Force WP Brukersynkroniseringsfunksjonen i innstillingene for å deaktivere denne funksjonen, og denne feilen vil forsvinne."
|
42 |
+
|
43 |
+
#: classes/class.simple-wp-membership.php:246
|
44 |
+
msgid "You can use the back button of your browser to go back to the site."
|
45 |
+
msgstr "Du kan bruke tilbake-knappen i nettleseren din for å gå tilbake til nettstedet."
|
46 |
+
|
47 |
+
#: classes/class.simple-wp-membership.php:407
|
48 |
+
msgid "You are not logged in."
|
49 |
+
msgstr "Du er ikke innlogget."
|
50 |
+
|
51 |
+
#: classes/class.simple-wp-membership.php:458
|
52 |
+
msgid "You have the sandbox payment mode enabled in plugin settings. Make sure to turn off the sandbox mode when you want to do live transactions."
|
53 |
+
msgstr "Du har aktivert betalingsmodus for sandkasse i plugin-innstillingene. Sørg for å slå av sandkassemodus når du vil utføre live-transaksjoner."
|
54 |
+
|
55 |
+
#: classes/class.simple-wp-membership.php:473
|
56 |
+
msgid "Simple WP Membership Protection"
|
57 |
+
msgstr "Enkel beskyttelse av WP-medlemskap"
|
58 |
+
|
59 |
+
#: classes/class.simple-wp-membership.php:485
|
60 |
+
msgid "Simple Membership Protection options"
|
61 |
+
msgstr "Enkle alternativer for medlemskapsbeskyttelse"
|
62 |
+
|
63 |
+
#: classes/class.simple-wp-membership.php:503
|
64 |
+
msgid "Do you want to protect this content?"
|
65 |
+
msgstr "Vil du beskytte dette innholdet?"
|
66 |
+
|
67 |
+
#: classes/class.simple-wp-membership.php:504
|
68 |
+
msgid "No, Do not protect this content."
|
69 |
+
msgstr "Nei, ikke beskytt dette innholdet."
|
70 |
+
|
71 |
+
#: classes/class.simple-wp-membership.php:505
|
72 |
+
msgid "Yes, Protect this content."
|
73 |
+
msgstr "Ja, beskytt dette innholdet."
|
74 |
+
|
75 |
+
#: classes/class.simple-wp-membership.php:508
|
76 |
+
msgid "Select the membership level that can access this content:"
|
77 |
+
msgstr "Velg medlemsnivå som får tilgang til dette innholdet:"
|
78 |
+
|
79 |
+
#: classes/class.simple-wp-membership.php:646
|
80 |
+
#: classes/class.simple-wp-membership.php:650
|
81 |
+
msgid "Validating, please wait"
|
82 |
+
msgstr "Validerer, vennligst vent"
|
83 |
+
|
84 |
+
#: classes/class.simple-wp-membership.php:653
|
85 |
+
msgid "Invalid email address"
|
86 |
+
msgstr "Ugyldig epostadresse"
|
87 |
+
|
88 |
+
#: classes/class.simple-wp-membership.php:656
|
89 |
+
msgid "This field is required"
|
90 |
+
msgstr "Dette feltet er obligatorisk"
|
91 |
+
|
92 |
+
msgid "Password must contain at least:"
|
93 |
+
msgstr "Passordet må inneholde minst:"
|
94 |
+
|
95 |
+
msgid "- a digit"
|
96 |
+
msgstr "- et siffer"
|
97 |
+
|
98 |
+
msgid "- an uppercase letter"
|
99 |
+
msgstr "- en stor bokstav"
|
100 |
+
|
101 |
+
msgid "- a lowercase letter"
|
102 |
+
msgstr "- en liten bokstav"
|
103 |
+
|
104 |
+
#: classes/class.simple-wp-membership.php:659 classes/class.swpm-auth.php:296
|
105 |
+
msgid "Invalid Username"
|
106 |
+
msgstr "Ugyldig brukernavn"
|
107 |
+
|
108 |
+
#: classes/class.simple-wp-membership.php:659
|
109 |
+
msgid "Usernames can only contain: letters, numbers and .-_*@"
|
110 |
+
msgstr "Brukernavn kan bare inneholde: bokstaver, tall og.-_ * @"
|
111 |
+
|
112 |
+
#: classes/class.simple-wp-membership.php:662
|
113 |
+
msgid "Minimum "
|
114 |
+
msgstr "Minimum "
|
115 |
+
|
116 |
+
#: classes/class.simple-wp-membership.php:663
|
117 |
+
msgid " characters required"
|
118 |
+
msgstr " tegn som kreves"
|
119 |
+
|
120 |
+
#: classes/class.simple-wp-membership.php:666
|
121 |
+
msgid "Apostrophe character is not allowed"
|
122 |
+
msgstr "Apostrofekarakter er ikke tillatt"
|
123 |
+
|
124 |
+
#: classes/class.simple-wp-membership.php:697
|
125 |
+
msgid "WP Membership"
|
126 |
+
msgstr "WP-medlemskap"
|
127 |
+
|
128 |
+
#: classes/class.simple-wp-membership.php:698 classes/class.swpm-members.php:11
|
129 |
+
#: classes/class.swpm-members.php:581
|
130 |
+
msgid "Members"
|
131 |
+
msgstr "Medlemmer"
|
132 |
+
|
133 |
+
#: classes/class.simple-wp-membership.php:699
|
134 |
+
#: classes/class.swpm-category-list.php:20
|
135 |
+
#: classes/class.swpm-membership-levels.php:12
|
136 |
+
#: classes/class.swpm-membership-levels.php:265
|
137 |
+
#: classes/class.swpm-post-list.php:21
|
138 |
+
msgid "Membership Levels"
|
139 |
+
msgstr "Medlemsnivåer"
|
140 |
+
|
141 |
+
#: classes/class.simple-wp-membership.php:700
|
142 |
+
msgid "Settings"
|
143 |
+
msgstr "Innstillinger"
|
144 |
+
|
145 |
+
#: classes/class.simple-wp-membership.php:701
|
146 |
+
msgid "Payments"
|
147 |
+
msgstr "Betalinger"
|
148 |
+
|
149 |
+
#: classes/class.simple-wp-membership.php:702
|
150 |
+
msgid "Add-ons"
|
151 |
+
msgstr "Add-ons"
|
152 |
+
|
153 |
+
#: classes/class.swpm-access-control.php:47
|
154 |
+
#: classes/class.swpm-access-control.php:120
|
155 |
msgid "You need to login to view this content. "
|
156 |
msgstr "Du må logge inn for å se dette innholdet. "
|
157 |
|
158 |
+
#: classes/class.swpm-access-control.php:56
|
159 |
+
#: classes/class.swpm-access-control.php:128
|
160 |
+
#: classes/class.swpm-access-control.php:212
|
161 |
+
msgid "Your account has expired. "
|
162 |
+
msgstr "Kontoen din er utløpt. "
|
163 |
+
|
164 |
+
#: classes/class.swpm-access-control.php:66
|
165 |
+
#: classes/class.swpm-access-control.php:138
|
166 |
+
msgid "This content can only be viewed by members who joined on or before "
|
167 |
+
msgstr "Dette innholdet kan bare sees av medlemmer som meldte seg på eller før "
|
168 |
|
169 |
+
#: classes/class.swpm-access-control.php:79
|
170 |
+
#: classes/class.swpm-access-control.php:148
|
171 |
+
msgid "This content is not permitted for your membership level."
|
172 |
+
msgstr "Dette innholdet er ikke tillatt for ditt medlemsnivå."
|
173 |
|
174 |
+
#: classes/class.swpm-access-control.php:204
|
|
|
175 |
msgid "You need to login to view the rest of the content. "
|
176 |
msgstr "Du må logge inn for å se resten av innholdet. "
|
177 |
|
178 |
+
#: classes/class.swpm-access-control.php:217
|
179 |
+
msgid " The rest of the content is not permitted for your membership level."
|
180 |
+
msgstr " Resten av innholdet er ikke tillatt for ditt medlemsnivå."
|
181 |
|
182 |
+
#: classes/class.swpm-admin-registration.php:25
|
183 |
+
msgid "Error! Nonce verification failed for user registration from admin end."
|
184 |
+
msgstr "Feil! Ikke-bekreftelse mislyktes for brukerregistrering fra admin slutten."
|
185 |
+
|
186 |
+
#: classes/class.swpm-admin-registration.php:71
|
187 |
+
msgid "Member record added successfully."
|
188 |
+
msgstr "Medlemsrekorden ble lagt til."
|
189 |
+
|
190 |
+
#: classes/class.swpm-admin-registration.php:76
|
191 |
+
#: classes/class.swpm-admin-registration.php:124
|
192 |
+
#: classes/class.swpm-admin-registration.php:151
|
193 |
+
#: classes/class.swpm-membership-level.php:73
|
194 |
+
#: classes/class.swpm-membership-level.php:105
|
195 |
msgid "Please correct the following:"
|
196 |
+
msgstr "Korriger følgende:"
|
197 |
+
|
198 |
+
#: classes/class.swpm-admin-registration.php:87
|
199 |
+
msgid "Error! Nonce verification failed for user edit from admin end."
|
200 |
+
msgstr "Feil! Bekreftelse av manglende kraft mislyktes for brukerredigering fra admin-slutt."
|
201 |
+
|
202 |
+
#: classes/class.swpm-admin-registration.php:139
|
203 |
+
msgid "Your current password"
|
204 |
+
msgstr "Ditt nåværende passord"
|
205 |
|
206 |
+
#: classes/class.swpm-ajax.php:14
|
207 |
+
msgid "Invalid Email Address"
|
208 |
+
msgstr "Ugyldig epostadresse"
|
|
|
209 |
|
210 |
+
#: classes/class.swpm-ajax.php:21 classes/class.swpm-ajax.php:36
|
211 |
+
msgid "Already taken"
|
212 |
+
msgstr "Allerede tatt"
|
213 |
+
|
214 |
+
#: classes/class.swpm-ajax.php:30
|
215 |
+
msgid "Name contains invalid character"
|
216 |
+
msgstr "Navnet inneholder ugyldig karakter"
|
217 |
+
|
218 |
+
#: classes/class.swpm-ajax.php:37
|
219 |
msgid "Available"
|
220 |
msgstr "Tilgjengelig"
|
221 |
|
222 |
+
#: classes/class.swpm-auth.php:57
|
223 |
+
msgid "Warning! Simple Membership plugin cannot process this login request to prevent you from getting logged out of WP Admin accidentally."
|
224 |
+
msgstr "Advarsel! Simple Membership-plugin kan ikke behandle denne påloggingsforespørselen for å forhindre at du blir logget av WP Admin ved et uhell."
|
225 |
+
|
226 |
+
#: classes/class.swpm-auth.php:58
|
227 |
+
msgid "Click here"
|
228 |
+
msgstr "Klikk her"
|
229 |
+
|
230 |
+
#: classes/class.swpm-auth.php:58
|
231 |
+
msgid " to see the profile you are currently logged into in this browser."
|
232 |
+
msgstr " for å se profilen du for øyeblikket er logget på i denne nettleseren."
|
233 |
+
|
234 |
+
#: classes/class.swpm-auth.php:59
|
235 |
+
msgid "You are logged into the site as an ADMIN user in this browser. First, logout from WP Admin then you will be able to log in as a normal member."
|
236 |
+
msgstr "Du er logget inn på siden som ADMIN-bruker i denne nettleseren. Først logger du ut fra WP Admin, så vil du kunne logge deg på som et normalt medlem."
|
237 |
+
|
238 |
+
#: classes/class.swpm-auth.php:60
|
239 |
+
msgid "Alternatively, you can use a different browser (where you are not logged-in as ADMIN) to test the membership login."
|
240 |
+
msgstr "Alternativt kan du bruke en annen nettleser (der du ikke er logget inn som ADMIN) for å teste medlemspåloggingen."
|
241 |
+
|
242 |
+
#: classes/class.swpm-auth.php:61
|
243 |
+
msgid "Your normal visitors or members will never see this message. This message is ONLY for ADMIN user."
|
244 |
+
msgstr "De vanlige besøkende eller medlemmer vil aldri se denne meldingen. Denne meldingen er KUN for ADMIN-brukere."
|
245 |
+
|
246 |
+
#: classes/class.swpm-auth.php:68
|
247 |
+
msgid "Captcha validation failed on login form."
|
248 |
+
msgstr "Valg av Captcha mislyktes på påloggingsskjemaet."
|
249 |
+
|
250 |
+
#: classes/class.swpm-auth.php:93
|
251 |
msgid "User Not Found."
|
252 |
+
msgstr "Bruker ikke funnet."
|
253 |
|
254 |
+
#: classes/class.swpm-auth.php:100
|
255 |
msgid "Password Empty or Invalid."
|
256 |
msgstr "Passordet er tomt eller ugyldig."
|
257 |
|
258 |
+
#: classes/class.swpm-auth.php:133
|
259 |
msgid "Account is inactive."
|
260 |
msgstr "Kontoen er inaktiv."
|
261 |
|
262 |
+
#: classes/class.swpm-auth.php:136 classes/class.swpm-auth.php:162
|
263 |
msgid "Account has expired."
|
264 |
msgstr "Kontoen er utløpt."
|
265 |
|
266 |
+
#: classes/class.swpm-auth.php:139
|
267 |
+
msgid "Account is pending."
|
268 |
+
msgstr "Kontoen venter."
|
269 |
+
|
270 |
+
#: classes/class.swpm-auth.php:146
|
271 |
+
msgid "You need to activate your account. If you didn't receive an email then %s to resend the activation email."
|
272 |
+
msgstr "Du må aktivere kontoen din. Hvis du ikke mottok en e-post, send% s for å sende aktiveringsmeldingen på nytt."
|
273 |
+
|
274 |
+
#: classes/class.swpm-auth.php:146
|
275 |
+
#: classes/class.swpm-front-registration.php:376
|
276 |
+
#: classes/class.swpm-front-registration.php:426
|
277 |
+
#: classes/class.swpm-utils-misc.php:169
|
278 |
+
msgid "click here"
|
279 |
+
msgstr "klikk her"
|
280 |
+
|
281 |
+
#: classes/class.swpm-auth.php:170
|
282 |
msgid "You are logged in as:"
|
283 |
+
msgstr "Du er innlogget som:"
|
284 |
|
285 |
+
#: classes/class.swpm-auth.php:234
|
286 |
msgid "Logged Out Successfully."
|
287 |
+
msgstr "Logget ut Vellykket."
|
288 |
|
289 |
+
#: classes/class.swpm-auth.php:287
|
290 |
msgid "Session Expired."
|
291 |
+
msgstr "Sesjon utløpt."
|
292 |
+
|
293 |
+
#: classes/class.swpm-auth.php:304
|
294 |
+
msgid "Please login again."
|
295 |
+
msgstr "Vennligst logg inn igjen."
|
296 |
+
|
297 |
+
#: classes/class.swpm-category-list.php:19 classes/class.swpm-members.php:24
|
298 |
+
#: classes/class.swpm-membership-levels.php:11
|
299 |
+
#: classes/class.swpm-membership-levels.php:21
|
300 |
+
#: classes/class.swpm-post-list.php:20
|
301 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:85
|
302 |
+
#: views/add.php:40 views/admin_member_form_common_part.php:2 views/edit.php:75
|
303 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:50
|
304 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:34
|
305 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:229
|
306 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:49
|
307 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:35
|
308 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:317
|
309 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:47
|
310 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:273
|
311 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:99
|
312 |
msgid "Membership Level"
|
313 |
+
msgstr "Medlemskapsnivå"
|
314 |
|
315 |
+
#: classes/class.swpm-category-list.php:33
|
316 |
+
msgid "Category ID"
|
317 |
+
msgstr "Kategori-ID"
|
|
|
|
|
318 |
|
319 |
+
#: classes/class.swpm-category-list.php:34
|
320 |
+
msgid "Category Name"
|
321 |
+
msgstr "Kategori navn"
|
|
|
|
|
322 |
|
323 |
+
#: classes/class.swpm-category-list.php:35
|
324 |
+
msgid "Category Type (Taxonomy)"
|
325 |
+
msgstr "Kategoritype (taksonomi)"
|
326 |
|
327 |
+
#: classes/class.swpm-category-list.php:36
|
328 |
msgid "Description"
|
329 |
msgstr "Beskrivelse"
|
330 |
|
331 |
+
#: classes/class.swpm-category-list.php:37
|
332 |
msgid "Count"
|
333 |
+
msgstr "Telle"
|
334 |
|
335 |
+
#: classes/class.swpm-category-list.php:92
|
336 |
+
msgid "Category protection updated!"
|
337 |
+
msgstr "Kategoribeskyttelse oppdatert!"
|
338 |
|
339 |
+
#: classes/class.swpm-category-list.php:130
|
340 |
+
msgid "No category found."
|
341 |
+
msgstr "Ingen kategori funnet."
|
|
|
|
|
|
|
342 |
|
343 |
+
#: classes/class.swpm-comment-form-related.php:15
|
344 |
+
msgid "Please login to comment."
|
345 |
+
msgstr "Vennligst logg inn for å kommentere."
|
346 |
+
|
347 |
+
#: classes/class.swpm-comment-form-related.php:40
|
348 |
+
msgid "Please Login to Comment."
|
349 |
+
msgstr "Vennligst logg inn for å kommentere."
|
350 |
+
|
351 |
+
#: classes/class.swpm-comment-form-related.php:79
|
352 |
+
msgid "Comments not allowed by a non-member."
|
353 |
+
msgstr "Kommentarer er ikke tillatt av et ikke-medlem."
|
354 |
+
|
355 |
+
#: classes/class.swpm-form.php:30
|
356 |
+
msgid "Wordpress account exists with given username. But given email doesn't match."
|
357 |
+
msgstr "Wordpress-konto eksisterer med gitt brukernavn. Men gitt e-post stemmer ikke."
|
358 |
|
359 |
+
#: classes/class.swpm-form.php:31
|
360 |
+
msgid " Use a different username to complete the registration. If you want to use that username then you must enter the correct email address associated with the existing WP user to connect with that account."
|
361 |
+
msgstr " Bruk et annet brukernavn for å fullføre registreringen. Hvis du vil bruke dette brukernavnet, må du oppgi riktig e-postadresse tilknyttet den eksisterende WP-brukeren for å koble til den kontoen."
|
362 |
|
363 |
+
#: classes/class.swpm-form.php:37
|
364 |
+
msgid "Wordpress account exists with given email. But given username doesn't match."
|
365 |
+
msgstr "Wordpress-konto eksisterer med gitt e-post. Men gitt brukernavn stemmer ikke."
|
366 |
|
367 |
+
#: classes/class.swpm-form.php:38
|
368 |
+
msgid " Use a different email address to complete the registration. If you want to use that email then you must enter the correct username associated with the existing WP user to connect with that account."
|
369 |
+
msgstr " Bruk en annen e-postadresse for å fullføre registreringen. Hvis du vil bruke den e-postmeldingen, må du oppgi riktig brukernavn tilknyttet den eksisterende WP-brukeren for å koble til den kontoen."
|
370 |
|
371 |
+
#: classes/class.swpm-form.php:48
|
372 |
+
msgid "Username is required"
|
373 |
+
msgstr "Brukernavn kreves"
|
374 |
+
|
375 |
+
#: classes/class.swpm-form.php:52
|
376 |
+
msgid "Username contains invalid character"
|
377 |
+
msgstr "Brukernavn inneholder ugyldig karakter"
|
378 |
+
|
379 |
+
#: classes/class.swpm-form.php:60
|
380 |
+
msgid "Username already exists."
|
381 |
+
msgstr "Brukernavn finnes allerede."
|
382 |
+
|
383 |
+
#: classes/class.swpm-form.php:83
|
384 |
msgid "Password is required"
|
385 |
+
msgstr "Passord er påkrevd"
|
386 |
|
387 |
+
#: classes/class.swpm-form.php:90
|
388 |
msgid "Password mismatch"
|
389 |
+
msgstr "Feil i passord"
|
390 |
|
391 |
+
#: classes/class.swpm-form.php:101
|
392 |
msgid "Email is required"
|
393 |
+
msgstr "E-post er påkrevd"
|
394 |
|
395 |
+
#: classes/class.swpm-form.php:105
|
396 |
msgid "Email is invalid"
|
397 |
+
msgstr "E-postadressen er ugyldig"
|
398 |
|
399 |
+
#: classes/class.swpm-form.php:121
|
400 |
msgid "Email is already used."
|
401 |
+
msgstr "E-post er allerede brukt."
|
402 |
|
403 |
+
#: classes/class.swpm-form.php:179
|
404 |
msgid "Member since field is invalid"
|
405 |
msgstr "Medlem siden feltet er ugyldig"
|
406 |
|
407 |
+
#: classes/class.swpm-form.php:190
|
408 |
msgid "Access starts field is invalid"
|
409 |
+
msgstr "Tilgangsstartfeltet er ugyldig"
|
410 |
|
411 |
+
#: classes/class.swpm-form.php:200
|
412 |
msgid "Gender field is invalid"
|
413 |
+
msgstr "Kjønnsfeltet er ugyldig"
|
414 |
|
415 |
+
#: classes/class.swpm-form.php:211
|
416 |
msgid "Account state field is invalid"
|
417 |
+
msgstr "Kontostatusfeltet er ugyldig"
|
418 |
|
419 |
+
#: classes/class.swpm-form.php:218
|
420 |
msgid "Invalid membership level"
|
421 |
+
msgstr "Ugyldig medlemsnivå"
|
422 |
+
|
423 |
+
#: classes/class.swpm-front-registration.php:33
|
424 |
+
msgid "Error! Invalid Request. Could not find a match for the given security code and the user ID."
|
425 |
+
msgstr "Feil! Ugyldig forespørsel. Kunne ikke finne et samsvar for den gitte sikkerhetskoden og bruker-IDen."
|
426 |
+
|
427 |
+
#: classes/class.swpm-front-registration.php:45
|
428 |
+
#: classes/class.swpm-utils-misc.php:274 views/login.php:36
|
429 |
+
msgid "Join Us"
|
430 |
+
msgstr "Bli med oss"
|
431 |
+
|
432 |
+
#: classes/class.swpm-front-registration.php:47
|
433 |
+
msgid "Free membership is disabled on this site. Please make a payment from the "
|
434 |
+
msgstr "Gratis medlemskap er deaktivert på dette nettstedet. Foreta en betaling fra "
|
435 |
|
436 |
+
#: classes/class.swpm-front-registration.php:49
|
437 |
+
msgid " page to pay for a premium membership."
|
438 |
+
msgstr " side for å betale for et premiummedlemskap."
|
439 |
+
|
440 |
+
#: classes/class.swpm-front-registration.php:51
|
441 |
+
msgid "You will receive a unique link via email after the payment. You will be able to use that link to complete the premium membership registration."
|
442 |
+
msgstr "Du vil motta en unik lenke via e-post etter betalingen. Du vil kunne bruke den lenken til å fullføre premium medlemsregistreringen."
|
443 |
+
|
444 |
+
#: classes/class.swpm-front-registration.php:79
|
445 |
+
msgid "Security check: captcha validation failed."
|
446 |
+
msgstr "Sikkerhetsjekk: captcha-validering mislyktes."
|
447 |
+
|
448 |
+
#: classes/class.swpm-front-registration.php:89
|
449 |
+
msgid "You must accept the terms and conditions."
|
450 |
+
msgstr "Du må akseptere vilkårene og betingelsene."
|
451 |
+
|
452 |
+
#: classes/class.swpm-front-registration.php:100
|
453 |
+
msgid "You must agree to the privacy policy."
|
454 |
+
msgstr "Du må godta personvernreglene."
|
455 |
+
|
456 |
+
#: classes/class.swpm-front-registration.php:140
|
457 |
+
msgid "You need to confirm your email address. Please check your email and follow instructions to complete your registration."
|
458 |
+
msgstr "Du må bekrefte e-postadressen din. Vennligst sjekk e-posten din og følg instruksjonene for å fullføre registreringen."
|
459 |
+
|
460 |
+
#: classes/class.swpm-front-registration.php:145
|
461 |
msgid "Registration Successful. "
|
462 |
msgstr "Registrering fullført. "
|
463 |
|
464 |
+
#: classes/class.swpm-front-registration.php:145
|
465 |
+
#: classes/class.swpm-utils-misc.php:273 classes/class.swpm-utils-misc.php:285
|
466 |
msgid "Please"
|
467 |
msgstr "Vennligst"
|
468 |
|
469 |
+
#: classes/class.swpm-front-registration.php:145
|
470 |
+
#: classes/class.swpm-utils-misc.php:273 views/login.php:30
|
|
|
471 |
msgid "Login"
|
472 |
+
msgstr "Logg Inn"
|
473 |
|
474 |
+
#: classes/class.swpm-front-registration.php:159
|
|
|
475 |
msgid "Please correct the following"
|
476 |
msgstr "Vennligst korriger følgende"
|
477 |
|
478 |
+
#: classes/class.swpm-front-registration.php:207
|
479 |
msgid "Membership Level Couldn't be found."
|
480 |
+
msgstr "Medlemskapsnivå Funnet ikke."
|
481 |
+
|
482 |
+
#: classes/class.swpm-front-registration.php:258
|
483 |
+
msgid "Error! Nonce verification failed for front end profile edit."
|
484 |
+
msgstr "Feil! Ikke-bekreftelse mislyktes for redigering av frontend-profilen."
|
485 |
+
|
486 |
+
#: classes/class.swpm-front-registration.php:266
|
487 |
+
msgid "Profile updated successfully."
|
488 |
+
msgstr "Profilen ble oppdatert."
|
489 |
|
490 |
+
#: classes/class.swpm-front-registration.php:275
|
491 |
+
msgid "Profile updated successfully. You will need to re-login since you changed your password."
|
492 |
+
msgstr "Profilen ble oppdatert. Du må logge inn på nytt siden du endret passord."
|
493 |
|
494 |
+
#: classes/class.swpm-front-registration.php:289
|
495 |
+
msgid "Please correct the following."
|
496 |
+
msgstr "Vennligst korriger følgende."
|
497 |
+
|
498 |
+
#: classes/class.swpm-front-registration.php:301
|
499 |
+
msgid "Captcha validation failed."
|
500 |
+
msgstr "Valg av Captcha mislyktes."
|
501 |
+
|
502 |
+
#: classes/class.swpm-front-registration.php:309
|
503 |
+
msgid "Email address not valid."
|
504 |
+
msgstr "E-postadressen er ikke gyldig."
|
505 |
+
|
506 |
+
#: classes/class.swpm-front-registration.php:320
|
507 |
+
msgid "No user found with that email address."
|
508 |
+
msgstr "Ingen brukere funnet med den e-postadressen."
|
509 |
+
|
510 |
+
#: classes/class.swpm-front-registration.php:321
|
511 |
+
#: classes/class.swpm-front-registration.php:350
|
512 |
+
msgid "Email Address: "
|
513 |
+
msgstr "Epostadresse: "
|
514 |
+
|
515 |
+
#: classes/class.swpm-front-registration.php:349
|
516 |
msgid "New password has been sent to your email address."
|
517 |
+
msgstr "Nytt passord har blitt sendt til din e-postadresse."
|
518 |
+
|
519 |
+
#: classes/class.swpm-front-registration.php:371
|
520 |
+
msgid "Can't find member account."
|
521 |
+
msgstr "Finner ikke medlemskonto."
|
522 |
+
|
523 |
+
#: classes/class.swpm-front-registration.php:376
|
524 |
+
#: classes/class.swpm-front-registration.php:426
|
525 |
+
msgid "Account already active. "
|
526 |
+
msgstr "Kontoen er allerede aktiv. "
|
527 |
|
528 |
+
#: classes/class.swpm-front-registration.php:376
|
529 |
+
#: classes/class.swpm-front-registration.php:426
|
530 |
+
msgid " to login."
|
531 |
+
msgstr " å logge inn."
|
532 |
+
|
533 |
+
#: classes/class.swpm-front-registration.php:383
|
534 |
+
msgid "Activation code mismatch. Cannot activate this account. Please contact the site admin."
|
535 |
+
msgstr "Feil i aktiveringskode. Kan ikke aktivere denne kontoen. Kontakt nettstedets administrator."
|
536 |
+
|
537 |
+
#: classes/class.swpm-front-registration.php:397
|
538 |
+
msgid "Success! Your account has been activated successfully."
|
539 |
+
msgstr "Suksess! Kontoen din er blitt aktivert."
|
540 |
+
|
541 |
+
#: classes/class.swpm-front-registration.php:421
|
542 |
+
msgid "Cannot find member account."
|
543 |
+
msgstr "Kan ikke finne medlemskonto."
|
544 |
+
|
545 |
+
#: classes/class.swpm-front-registration.php:443
|
546 |
+
msgid "Activation email has been sent. Please check your email and activate your account."
|
547 |
+
msgstr "Aktiverings-e-post er sendt. Vennligst sjekk e-posten din og aktiver kontoen din."
|
548 |
+
|
549 |
+
#: classes/class.swpm-init-time-tasks.php:118
|
550 |
+
msgid "Sorry, Nonce verification failed."
|
551 |
+
msgstr "Beklager, bekreftelse av ikke-mislyktes mislyktes."
|
552 |
+
|
553 |
+
#: classes/class.swpm-init-time-tasks.php:125
|
554 |
+
msgid "Sorry, Password didn't match."
|
555 |
+
msgstr "Beklager, passordet stemte ikke."
|
556 |
+
|
557 |
+
#: classes/class.swpm-level-form.php:50
|
558 |
msgid "Date format is not valid."
|
559 |
+
msgstr "Datoformatet er ikke gyldig."
|
560 |
|
561 |
+
#: classes/class.swpm-level-form.php:58
|
562 |
msgid "Access duration must be > 0."
|
563 |
+
msgstr "Tilgangsvarighet må være> 0."
|
564 |
|
565 |
+
#: classes/class.swpm-members.php:10
|
566 |
msgid "Member"
|
567 |
msgstr "Medlem"
|
568 |
|
569 |
+
#: classes/class.swpm-members.php:19
|
570 |
+
#: classes/class.swpm-membership-levels.php:20
|
571 |
+
msgid "ID"
|
572 |
+
msgstr "ID"
|
573 |
|
574 |
+
#: classes/class.swpm-members.php:20 views/add.php:16 views/admin_add.php:11
|
575 |
+
#: views/admin_edit.php:19 views/edit.php:23
|
576 |
+
#: includes/swpm_mda_show_profile.php:27
|
577 |
+
msgid "Username"
|
578 |
msgstr "Brukernavn"
|
579 |
|
580 |
+
#: classes/class.swpm-members.php:21
|
581 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:78
|
582 |
+
#: views/add.php:32 views/admin_member_form_common_part.php:15
|
583 |
+
#: views/edit.php:39 includes/swpm_mda_show_profile.php:28
|
584 |
msgid "First Name"
|
585 |
msgstr "Fornavn"
|
586 |
|
587 |
+
#: classes/class.swpm-members.php:22
|
588 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:79
|
589 |
+
#: views/add.php:36 views/admin_member_form_common_part.php:19
|
590 |
+
#: views/edit.php:43 includes/swpm_mda_show_profile.php:29
|
591 |
msgid "Last Name"
|
592 |
msgstr "Etternavn"
|
593 |
|
594 |
+
#: classes/class.swpm-members.php:23 views/add.php:20 views/edit.php:27
|
595 |
+
#: includes/swpm_mda_show_profile.php:35
|
596 |
msgid "Email"
|
597 |
+
msgstr "E-post"
|
598 |
|
599 |
+
#: classes/class.swpm-members.php:25 views/admin_member_form_common_part.php:11
|
|
|
600 |
msgid "Access Starts"
|
601 |
msgstr "Tilgang starter"
|
602 |
|
603 |
+
#: classes/class.swpm-members.php:26 includes/swpm_mda_show_profile.php:31
|
604 |
msgid "Account State"
|
605 |
+
msgstr "Kontostatus"
|
606 |
|
607 |
+
#: classes/class.swpm-members.php:27
|
608 |
+
msgid "Last Login Date"
|
609 |
+
msgstr "Siste påloggingsdato"
|
610 |
+
|
611 |
+
#: classes/class.swpm-members.php:46
|
612 |
+
#: classes/class.swpm-membership-levels.php:36
|
613 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:94
|
614 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:102
|
615 |
msgid "Delete"
|
616 |
msgstr "Slett"
|
617 |
|
618 |
+
#: classes/class.swpm-members.php:47
|
619 |
+
msgid "Set Status to Active"
|
620 |
+
msgstr "Sett status til Aktiv"
|
621 |
+
|
622 |
+
#: classes/class.swpm-members.php:48
|
623 |
+
msgid "Set Status to Active and Notify"
|
624 |
+
msgstr "Sett status til Aktiv og varsle"
|
625 |
+
|
626 |
+
#: classes/class.swpm-members.php:49
|
627 |
+
msgid "Set Status to Inactive"
|
628 |
+
msgstr "Sett status til inaktiv"
|
629 |
+
|
630 |
+
#: classes/class.swpm-members.php:50
|
631 |
+
msgid "Set Status to Pending"
|
632 |
+
msgstr "Sett status til ventende"
|
633 |
+
|
634 |
+
#: classes/class.swpm-members.php:51
|
635 |
+
msgid "Set Status to Expired"
|
636 |
+
msgstr "Sett status til utløpt"
|
637 |
+
|
638 |
+
#: classes/class.swpm-members.php:72
|
639 |
+
msgid "incomplete"
|
640 |
+
msgstr "ufullstendig"
|
641 |
+
|
642 |
+
#: classes/class.swpm-members.php:191
|
643 |
+
msgid "No member found."
|
644 |
+
msgstr "Ingen medlemmer funnet."
|
645 |
+
|
646 |
+
#: classes/class.swpm-members.php:337
|
647 |
+
msgid "Error! Nonce verification failed for user delete from admin end."
|
648 |
+
msgstr "Feil! Bekreftelse av manglende kraft mislyktes for sletting av brukere fra admin-enden."
|
649 |
+
|
650 |
+
#: classes/class.swpm-members.php:406 classes/class.swpm-members.php:436
|
651 |
+
msgid "Error! Please select a membership level first."
|
652 |
+
msgstr "Feil! Velg først et medlemsnivå."
|
653 |
+
|
654 |
+
#: classes/class.swpm-members.php:423
|
655 |
+
msgid "Membership level change operation completed successfully."
|
656 |
+
msgstr "Operasjon for endring av medlemsnivå fullført."
|
657 |
+
|
658 |
+
#: classes/class.swpm-members.php:453
|
659 |
+
msgid "Access starts date change operation successfully completed."
|
660 |
+
msgstr "Endring av tilgangsdato ble fullført."
|
661 |
+
|
662 |
+
#: classes/class.swpm-members.php:462
|
663 |
+
msgid "Bulk Update Membership Level of Members"
|
664 |
+
msgstr "Bulk Update Membership Level of Members"
|
665 |
+
|
666 |
+
#: classes/class.swpm-members.php:465
|
667 |
+
msgid "You can manually change the membership level of any member by editing the record from the members menu. "
|
668 |
+
msgstr "Du kan endre medlemsnivået manuelt for et hvilket som helst medlem ved å redigere posten fra medlemsmenyen. "
|
669 |
+
|
670 |
+
#: classes/class.swpm-members.php:466
|
671 |
+
msgid "You can use the following option to bulk update the membership level of users who belong to the level you select below."
|
672 |
+
msgstr "Du kan bruke følgende alternativ for å bulkoppdatere medlemsnivået til brukere som tilhører nivået du velger nedenfor."
|
673 |
+
|
674 |
+
#: classes/class.swpm-members.php:472 classes/class.swpm-members.php:520
|
675 |
+
msgid "Membership Level: "
|
676 |
+
msgstr "Medlemskapsnivå: "
|
677 |
+
|
678 |
+
#: classes/class.swpm-members.php:476
|
679 |
+
msgid "Select Current Level"
|
680 |
+
msgstr "Velg Gjeldende nivå"
|
681 |
+
|
682 |
+
#: classes/class.swpm-members.php:479
|
683 |
+
msgid "Select the current membership level (the membership level of all members who are in this level will be updated)."
|
684 |
+
msgstr "Velg gjeldende medlemsnivå (medlemsnivået for alle medlemmene som er i dette nivået vil bli oppdatert)."
|
685 |
+
|
686 |
+
#: classes/class.swpm-members.php:485
|
687 |
+
msgid "Level to Change to: "
|
688 |
+
msgstr "Nivå å endre til: "
|
689 |
+
|
690 |
+
#: classes/class.swpm-members.php:489
|
691 |
+
msgid "Select Target Level"
|
692 |
+
msgstr "Velg Målnivå"
|
693 |
+
|
694 |
+
#: classes/class.swpm-members.php:492
|
695 |
+
msgid "Select the new membership level."
|
696 |
+
msgstr "Velg det nye medlemsnivået."
|
697 |
+
|
698 |
+
#: classes/class.swpm-members.php:498
|
699 |
+
msgid "Bulk Change Membership Level"
|
700 |
+
msgstr "Bulk Change Membership Level"
|
701 |
+
|
702 |
+
#: classes/class.swpm-members.php:508
|
703 |
+
msgid "Bulk Update Access Starts Date of Members"
|
704 |
+
msgstr "Tilgang til masseoppdatering starter dato for medlemmer"
|
705 |
+
|
706 |
+
#: classes/class.swpm-members.php:512
|
707 |
+
msgid "The access starts date of a member is set to the day the user registers. This date value is used to calculate how long the member can access your content that are protected with a duration type protection in the membership level. "
|
708 |
+
msgstr "Tilgangsstartdato for et medlem er satt til den dagen brukeren registrerer seg. Denne datoverdien brukes til å beregne hvor lenge medlemmet kan få tilgang til innholdet ditt som er beskyttet med en varighetstype beskyttelse i medlemsnivået. "
|
709 |
+
|
710 |
+
#: classes/class.swpm-members.php:513
|
711 |
+
msgid "You can manually set a specific access starts date value of all members who belong to a particular level using the following option."
|
712 |
+
msgstr "Du kan stille inn en bestemt datoverdi for tilgang for alle medlemmer som tilhører et bestemt nivå manuelt ved å bruke følgende alternativ."
|
713 |
+
|
714 |
+
#: classes/class.swpm-members.php:523
|
715 |
+
msgid "Select Level"
|
716 |
+
msgstr "Velg nivå"
|
717 |
+
|
718 |
+
#: classes/class.swpm-members.php:526
|
719 |
+
msgid "Select the Membership level (the access start date of all members who are in this level will be updated)."
|
720 |
+
msgstr "Velg medlemskapsnivå (tilgangsdato for alle medlemmer som er på dette nivået vil bli oppdatert)."
|
721 |
+
|
722 |
+
#: classes/class.swpm-members.php:535
|
723 |
+
msgid "Specify the access starts date value."
|
724 |
+
msgstr "Angi datoen for tilgangsstartdato."
|
725 |
+
|
726 |
+
#: classes/class.swpm-members.php:541
|
727 |
+
msgid "Bulk Change Access Starts Date"
|
728 |
+
msgstr "Tilgang til bulkendring starter dato"
|
729 |
+
|
730 |
+
#: classes/class.swpm-members.php:576
|
731 |
+
msgid "Simple WP Membership::Members"
|
732 |
+
msgstr "Enkelt WP-medlemskap :: Medlemmer"
|
733 |
+
|
734 |
+
#: classes/class.swpm-members.php:577
|
735 |
+
#: classes/class.swpm-membership-levels.php:226 views/admin_members_list.php:44
|
736 |
+
msgid "Add New"
|
737 |
+
msgstr "Legg til ny"
|
738 |
+
|
739 |
+
#: classes/class.swpm-members.php:582 views/admin_add.php:6
|
740 |
+
msgid "Add Member"
|
741 |
+
msgstr "Legg til medlem"
|
742 |
+
|
743 |
+
#: classes/class.swpm-members.php:583
|
744 |
+
msgid "Bulk Operation"
|
745 |
+
msgstr "Bulkdrift"
|
746 |
|
747 |
+
#: classes/class.swpm-membership-level.php:52
|
748 |
+
msgid "Error! Nonce verification failed for membership level creation from admin end."
|
749 |
+
msgstr "Feil! Ikke-bekreftelse mislyktes for opprettelse av medlemskapsnivå fra administratorslutt."
|
750 |
+
|
751 |
+
#: classes/class.swpm-membership-level.php:68
|
752 |
msgid "Membership Level Creation Successful."
|
753 |
+
msgstr "Oppretting av medlemskapsnivå vellykket."
|
754 |
+
|
755 |
+
#: classes/class.swpm-membership-level.php:84
|
756 |
+
msgid "Error! Nonce verification failed for membership level edit from admin end."
|
757 |
+
msgstr "Feil! Bekreftelse av manglende godkjenning mislyktes for redigering av medlemsnivå fra administratorslutt."
|
758 |
|
759 |
+
#: classes/class.swpm-membership-level.php:100
|
760 |
+
msgid "Membership Level Updated Successfully."
|
761 |
+
msgstr "Medlemskapsnivå ble oppdatert."
|
762 |
|
763 |
+
#: classes/class.swpm-membership-levels.php:22
|
764 |
msgid "Role"
|
765 |
msgstr "Rolle"
|
766 |
|
767 |
+
#: classes/class.swpm-membership-levels.php:23
|
768 |
msgid "Access Valid For/Until"
|
769 |
+
msgstr "Tilgang gyldig for / til"
|
770 |
|
771 |
+
#: classes/class.swpm-membership-levels.php:133
|
772 |
+
msgid "No membership levels found."
|
773 |
+
msgstr "Ingen medlemsnivåer funnet."
|
774 |
+
|
775 |
+
#: classes/class.swpm-membership-levels.php:197
|
776 |
+
msgid "Error! Nonce verification failed for membership level delete from admin end."
|
777 |
+
msgstr "Feil! Bekreftelse av manglende godkjenning mislyktes for sletting av medlemsnivå fra admin-enden."
|
778 |
+
|
779 |
+
#: classes/class.swpm-membership-levels.php:216 views/admin_members_list.php:31
|
780 |
+
#: views/payments/admin_all_payment_transactions.php:16 views/template-1.php:53
|
781 |
+
#: views/template-2.php:54
|
782 |
+
msgid "Search"
|
783 |
+
msgstr "Søk"
|
784 |
+
|
785 |
+
#: classes/class.swpm-membership-levels.php:261
|
786 |
+
msgid "Simple WP Membership::Membership Levels"
|
787 |
+
msgstr "Enkelt WP-medlemskap: medlemsnivåer"
|
788 |
+
|
789 |
+
#: classes/class.swpm-membership-levels.php:266
|
790 |
+
msgid "Add Level"
|
791 |
+
msgstr "Legg til nivå"
|
792 |
+
|
793 |
+
#: classes/class.swpm-membership-levels.php:267
|
794 |
+
msgid "Manage Content Protection"
|
795 |
+
msgstr "Administrer innholdsbeskyttelse"
|
796 |
|
797 |
+
#: classes/class.swpm-membership-levels.php:268
|
798 |
+
msgid "Category Protection"
|
799 |
+
msgstr "Kategoribeskyttelse"
|
800 |
+
|
801 |
+
#: classes/class.swpm-membership-levels.php:269
|
802 |
+
msgid "Post and Page Protection"
|
803 |
+
msgstr "Innlegg og sidesikring"
|
804 |
+
|
805 |
+
#: classes/class.swpm-post-list.php:43 classes/class.swpm-post-list.php:52
|
806 |
+
#: classes/class.swpm-post-list.php:62
|
807 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:81
|
808 |
+
msgid "Date"
|
809 |
+
msgstr "Dato"
|
810 |
+
|
811 |
+
#: classes/class.swpm-post-list.php:44 classes/class.swpm-post-list.php:53
|
812 |
+
#: classes/class.swpm-post-list.php:63
|
813 |
+
msgid "Title"
|
814 |
+
msgstr "Tittel"
|
815 |
+
|
816 |
+
#: classes/class.swpm-post-list.php:45 classes/class.swpm-post-list.php:54
|
817 |
+
#: classes/class.swpm-post-list.php:64
|
818 |
+
msgid "Author"
|
819 |
+
msgstr "Forfatter"
|
820 |
+
|
821 |
+
#: classes/class.swpm-post-list.php:46 classes/class.swpm-post-list.php:56
|
822 |
+
#: classes/class.swpm-post-list.php:66
|
823 |
+
msgid "Status"
|
824 |
+
msgstr "Status"
|
825 |
+
|
826 |
+
#: classes/class.swpm-post-list.php:55
|
827 |
+
msgid "Categories"
|
828 |
+
msgstr "Kategorier"
|
829 |
+
|
830 |
+
#: classes/class.swpm-post-list.php:65
|
831 |
+
msgid "Type"
|
832 |
+
msgstr "Type"
|
833 |
+
|
834 |
+
#: classes/class.swpm-post-list.php:125
|
835 |
+
msgid "Protection settings updated!"
|
836 |
+
msgstr "Beskyttelsesinnstillinger oppdatert!"
|
837 |
+
|
838 |
+
#: classes/class.swpm-post-list.php:230
|
839 |
+
msgid "No items found."
|
840 |
+
msgstr "Ingen objekter funnet."
|
841 |
+
|
842 |
+
#: classes/class.swpm-protection.php:22
|
843 |
+
msgid "The category or parent category of this post is protected. You can change the category protection settings from the "
|
844 |
+
msgstr "Kategorien eller foreldrekategorien til dette innlegget er beskyttet. Du kan endre innstillingene for kategoribeskyttelse fra "
|
845 |
+
|
846 |
+
#: classes/class.swpm-protection.php:23
|
847 |
+
msgid "category protection menu"
|
848 |
+
msgstr "kategoribeskyttelsesmeny"
|
849 |
+
|
850 |
+
#: classes/class.swpm-settings.php:26 classes/class.swpm-settings.php:54
|
851 |
msgid "General Settings"
|
852 |
+
msgstr "Generelle innstillinger"
|
853 |
+
|
854 |
+
#: classes/class.swpm-settings.php:27
|
855 |
+
msgid "Payment Settings"
|
856 |
+
msgstr "Betalingsinnstillinger"
|
857 |
|
858 |
+
#: classes/class.swpm-settings.php:28
|
859 |
+
msgid "Email Settings"
|
860 |
+
msgstr "E-postinnstillinger"
|
861 |
+
|
862 |
+
#: classes/class.swpm-settings.php:29
|
863 |
+
msgid "Tools"
|
864 |
+
msgstr "Verktøy"
|
865 |
+
|
866 |
+
#: classes/class.swpm-settings.php:30 classes/class.swpm-settings.php:187
|
867 |
+
msgid "Advanced Settings"
|
868 |
+
msgstr "Avanserte innstillinger"
|
869 |
+
|
870 |
+
#: classes/class.swpm-settings.php:31
|
871 |
+
msgid "Addons Settings"
|
872 |
+
msgstr "Addons Innstillinger"
|
873 |
+
|
874 |
+
#: classes/class.swpm-settings.php:53
|
875 |
+
msgid "Plugin Documentation"
|
876 |
+
msgstr "Plugin-dokumentasjon"
|
877 |
+
|
878 |
+
#: classes/class.swpm-settings.php:55
|
879 |
msgid "Enable Free Membership"
|
880 |
+
msgstr "Aktiver gratis medlemskap"
|
881 |
|
882 |
+
#: classes/class.swpm-settings.php:56
|
883 |
+
msgid "Enable/disable registration for free membership level. When you enable this option, make sure to specify a free membership level ID in the field below."
|
884 |
+
msgstr "Aktiver / deaktiver registrering for gratis medlemsnivå. Når du aktiverer dette alternativet, må du sørge for å angi en gratis ID for medlemskapsnivå i feltet nedenfor."
|
885 |
|
886 |
+
#: classes/class.swpm-settings.php:57
|
887 |
msgid "Free Membership Level ID"
|
888 |
+
msgstr "Gratis medlemskaps-ID"
|
889 |
|
890 |
+
#: classes/class.swpm-settings.php:58
|
891 |
msgid "Assign free membership level ID"
|
892 |
+
msgstr "Tildel gratis ID for medlemskap"
|
893 |
|
894 |
+
#: classes/class.swpm-settings.php:59
|
895 |
msgid "Enable More Tag Protection"
|
896 |
+
msgstr "Aktiver mer tagbeskyttelse"
|
897 |
|
898 |
+
#: classes/class.swpm-settings.php:60
|
899 |
+
msgid "Enables or disables \"more\" tag protection in the posts and pages. Anything after the More tag is protected. Anything before the more tag is teaser content."
|
900 |
+
msgstr "Aktiverer eller deaktiverer \"mer\" tagbeskyttelse i innleggene og sidene. Alt etter Mer-taggen er beskyttet. Alt før mer tag er teaser-innhold."
|
|
|
|
|
|
|
|
|
|
|
901 |
|
902 |
+
#: classes/class.swpm-settings.php:61
|
903 |
msgid "Hide Adminbar"
|
904 |
+
msgstr "Skjul administrasjonsfeltet"
|
905 |
|
906 |
+
#: classes/class.swpm-settings.php:62
|
907 |
+
msgid "WordPress shows an admin toolbar to the logged in users of the site. Check this if you want to hide that admin toolbar in the frontend of your site."
|
908 |
+
msgstr "WordPress viser en administratorverktøylinje for påloggede brukere av nettstedet. Merk av for dette hvis du vil skjule den admin verktøylinjen i fronten av nettstedet."
|
909 |
+
|
910 |
+
#: classes/class.swpm-settings.php:63
|
911 |
+
msgid "Show Adminbar to Admin"
|
912 |
+
msgstr "Vis administrasjonslinje til administrator"
|
913 |
+
|
914 |
+
#: classes/class.swpm-settings.php:64
|
915 |
+
msgid "Use this option if you want to show the admin toolbar to admin users only. The admin toolbar will be hidden for all other users."
|
916 |
+
msgstr "Bruk dette alternativet hvis du bare vil vise admin-verktøylinjen for administratorbrukere. Administratorverktøylinjen vil være skjult for alle andre brukere."
|
917 |
|
918 |
+
#: classes/class.swpm-settings.php:65
|
919 |
+
msgid "Disable Access to WP Dashboard"
|
920 |
+
msgstr "Deaktiver tilgang til WP-dashbordet"
|
921 |
+
|
922 |
+
#: classes/class.swpm-settings.php:66
|
923 |
+
msgid "WordPress allows a standard wp user to be able to go to the wp-admin URL and access his profile from the wp dashbaord. Using this option will prevent any non admin users from going to the wp dashboard."
|
924 |
+
msgstr "WordPress lar en standard wp-bruker kunne gå til wp-admin URL og få tilgang til profilen sin fra wp dashbaord. Bruk av dette alternativet vil forhindre at brukere som ikke er administratorer, går til wp-dashbordet."
|
925 |
+
|
926 |
+
#: classes/class.swpm-settings.php:68 classes/class.swpm-settings.php:242
|
927 |
msgid "Default Account Status"
|
928 |
+
msgstr "Standard kontostatus"
|
929 |
|
930 |
+
#: classes/class.swpm-settings.php:71
|
931 |
+
msgid "Select the default account status for newly registered users. If you want to manually approve the members then you can set the status to \"Pending\"."
|
932 |
+
msgstr "Velg standard kontostatus for nylig registrerte brukere. Hvis du vil godkjenne medlemmene manuelt, kan du stille status til \"Venter\"."
|
933 |
+
|
934 |
+
#: classes/class.swpm-settings.php:73
|
935 |
+
msgid "Members Must be Logged in to Comment"
|
936 |
+
msgstr "Medlemmene må være logget inn for å kommentere"
|
937 |
|
938 |
+
#: classes/class.swpm-settings.php:74
|
939 |
+
msgid "Enable this option if you only want the members of the site to be able to post a comment."
|
940 |
+
msgstr "Aktiver dette alternativet hvis du bare vil at medlemmene på nettstedet skal kunne legge inn en kommentar."
|
941 |
+
|
942 |
+
#: classes/class.swpm-settings.php:83
|
943 |
msgid "Pages Settings"
|
944 |
+
msgstr "Innstillinger for sider"
|
945 |
|
946 |
+
#: classes/class.swpm-settings.php:84
|
947 |
msgid "Login Page URL"
|
948 |
+
msgstr "Påloggingssiden URL"
|
949 |
|
950 |
+
#: classes/class.swpm-settings.php:86
|
951 |
msgid "Registration Page URL"
|
952 |
+
msgstr "Registreringssiden URL"
|
953 |
|
954 |
+
#: classes/class.swpm-settings.php:88
|
955 |
msgid "Join Us Page URL"
|
956 |
+
msgstr "Bli med på oss-URL"
|
957 |
|
958 |
+
#: classes/class.swpm-settings.php:90
|
959 |
msgid "Edit Profile Page URL"
|
960 |
+
msgstr "Rediger URL-adresse for profilsiden"
|
961 |
|
962 |
+
#: classes/class.swpm-settings.php:92
|
963 |
msgid "Password Reset Page URL"
|
964 |
+
msgstr "Tilbakestill passord for URL"
|
965 |
|
966 |
+
#: classes/class.swpm-settings.php:95
|
967 |
msgid "Test & Debug Settings"
|
968 |
+
msgstr "Test- og feilsøkingsinnstillinger"
|
969 |
+
|
970 |
+
#: classes/class.swpm-settings.php:97
|
971 |
+
msgid "Check this option to enable debug logging."
|
972 |
+
msgstr "Merk av for dette alternativet for å aktivere feilsøking."
|
973 |
+
|
974 |
+
#: classes/class.swpm-settings.php:98
|
975 |
+
msgid " This can be useful when troubleshooting an issue. Turn it off and reset the log files after the troubleshooting is complete."
|
976 |
+
msgstr " Dette kan være nyttig når du feilsøker et problem. Slå den av og tilbakestill loggfilene etter at feilsøkingen er fullført."
|
977 |
+
|
978 |
+
#: classes/class.swpm-settings.php:100
|
979 |
+
msgid "View general debug log file by clicking "
|
980 |
+
msgstr "Vis generell feilsøkingsloggfil ved å klikke "
|
981 |
+
|
982 |
+
#: classes/class.swpm-settings.php:100 classes/class.swpm-settings.php:101
|
983 |
+
#: classes/class.swpm-settings.php:102
|
984 |
+
msgid "here"
|
985 |
+
msgstr "her"
|
986 |
+
|
987 |
+
#: classes/class.swpm-settings.php:101
|
988 |
+
msgid "View login related debug log file by clicking "
|
989 |
+
msgstr "Se påloggingsrelatert feilsøkingsloggfil ved å klikke "
|
990 |
|
991 |
+
#: classes/class.swpm-settings.php:102
|
992 |
+
msgid "Reset debug log files by clicking "
|
993 |
+
msgstr "Tilbakestill feilsøkingsloggfiler ved å klikke "
|
994 |
+
|
995 |
+
#: classes/class.swpm-settings.php:103
|
996 |
+
msgid "Enable Debug"
|
997 |
+
msgstr "Aktiver feilsøking"
|
998 |
+
|
999 |
+
#: classes/class.swpm-settings.php:105
|
1000 |
msgid "Enable Sandbox Testing"
|
1001 |
+
msgstr "Aktiver testing av sandkasse"
|
1002 |
|
1003 |
+
#: classes/class.swpm-settings.php:106
|
1004 |
msgid "Enable this option if you want to do sandbox payment testing."
|
1005 |
+
msgstr "Aktiver dette alternativet hvis du vil utføre betalingstesting av sandkasse."
|
1006 |
|
1007 |
+
#: classes/class.swpm-settings.php:119
|
1008 |
+
msgid "Email Settings Overview"
|
1009 |
+
msgstr "E-postinnstillinger Oversikt"
|
1010 |
+
|
1011 |
+
#: classes/class.swpm-settings.php:120
|
1012 |
msgid "Email Misc. Settings"
|
1013 |
+
msgstr "E-post Diverse innstillinger"
|
1014 |
|
1015 |
+
#: classes/class.swpm-settings.php:122
|
1016 |
msgid "From Email Address"
|
1017 |
+
msgstr "Fra e-postadresse"
|
1018 |
|
1019 |
+
#: classes/class.swpm-settings.php:126
|
1020 |
msgid "Email Settings (Prompt to Complete Registration )"
|
1021 |
+
msgstr "E-postinnstillinger (Spør om fullstendig registrering)"
|
1022 |
|
1023 |
+
#: classes/class.swpm-settings.php:127 classes/class.swpm-settings.php:140
|
1024 |
+
#: classes/class.swpm-settings.php:158 classes/class.swpm-settings.php:163
|
1025 |
+
#: classes/class.swpm-settings.php:168 classes/class.swpm-settings.php:173
|
1026 |
msgid "Email Subject"
|
1027 |
+
msgstr "E-post Emne"
|
1028 |
|
1029 |
+
#: classes/class.swpm-settings.php:129 classes/class.swpm-settings.php:142
|
1030 |
+
#: classes/class.swpm-settings.php:159 classes/class.swpm-settings.php:164
|
1031 |
+
#: classes/class.swpm-settings.php:169 classes/class.swpm-settings.php:174
|
1032 |
msgid "Email Body"
|
1033 |
+
msgstr "E-postorgan"
|
1034 |
+
|
1035 |
+
#: classes/class.swpm-settings.php:133
|
1036 |
+
msgid "Enter the email address where you want the admin notification email to be sent to."
|
1037 |
+
msgstr "Skriv inn e-postadressen der du vil at e-postadministratorvarslingen skal sendes til."
|
1038 |
+
|
1039 |
+
#: classes/class.swpm-settings.php:134
|
1040 |
+
msgid " You can put multiple email addresses separated by comma (,) in the above field to send the notification to multiple email addresses."
|
1041 |
+
msgstr " Du kan sette flere e-postadresser atskilt med komma (,) i feltet ovenfor for å sende varselet til flere e-postadresser."
|
1042 |
+
|
1043 |
+
#: classes/class.swpm-settings.php:136
|
1044 |
+
msgid "Enter the subject for the admin notification email."
|
1045 |
+
msgstr "Angi emnet for e-posten for administratorvarsling."
|
1046 |
+
|
1047 |
+
#: classes/class.swpm-settings.php:137
|
1048 |
+
msgid "This email will be sent to the admin when a new user completes the membership registration. Only works if you have enabled the \"Send Notification to Admin\" option above."
|
1049 |
+
msgstr "Denne e-posten vil bli sendt til administratoren når en ny bruker fullfører medlemsregistreringen. Fungerer bare hvis du har aktivert alternativet \"Send varsling til administrator\" ovenfor."
|
1050 |
|
1051 |
+
#: classes/class.swpm-settings.php:139
|
1052 |
msgid "Email Settings (Registration Complete)"
|
1053 |
+
msgstr "E-postinnstillinger (registrering fullført)"
|
1054 |
|
1055 |
+
#: classes/class.swpm-settings.php:144
|
1056 |
+
msgid "Send Notification to Admin"
|
1057 |
+
msgstr "Send varsel til administrator"
|
1058 |
|
1059 |
+
#: classes/class.swpm-settings.php:145
|
1060 |
+
msgid "Enable this option if you want the admin to receive a notification when a member registers."
|
1061 |
+
msgstr "Aktiver dette alternativet hvis du vil at administratoren skal motta et varsel når et medlem registrerer seg."
|
1062 |
+
|
1063 |
+
#: classes/class.swpm-settings.php:146
|
1064 |
+
msgid "Admin Email Address"
|
1065 |
+
msgstr "Admin e-postadresse"
|
1066 |
+
|
1067 |
+
#: classes/class.swpm-settings.php:148
|
1068 |
+
msgid "Admin Notification Email Subject"
|
1069 |
+
msgstr "Administrasjonsvarsel E-postemne"
|
1070 |
+
|
1071 |
+
#: classes/class.swpm-settings.php:150
|
1072 |
+
msgid "Admin Notification Email Body"
|
1073 |
+
msgstr "Administrasjonsvarsel E-postorgan"
|
1074 |
+
|
1075 |
+
#: classes/class.swpm-settings.php:153
|
1076 |
msgid "Send Email to Member When Added via Admin Dashboard"
|
1077 |
+
msgstr "Send e-post til medlem når det legges til via administrasjonspanelet"
|
1078 |
|
1079 |
+
#: classes/class.swpm-settings.php:157
|
1080 |
+
msgid "Email Settings (Password Reset)"
|
1081 |
+
msgstr "E-postinnstillinger (tilbakestilling av passord)"
|
1082 |
+
|
1083 |
+
#: classes/class.swpm-settings.php:162
|
1084 |
msgid " Email Settings (Account Upgrade Notification)"
|
1085 |
+
msgstr " E-postinnstillinger (varsel om kontooppgradering)"
|
1086 |
+
|
1087 |
+
#: classes/class.swpm-settings.php:167
|
1088 |
+
msgid " Email Settings (Bulk Account Activate Notification)"
|
1089 |
+
msgstr " E-postinnstillinger (Bulkkonto aktiverer varsling)"
|
1090 |
+
|
1091 |
+
#: classes/class.swpm-settings.php:172
|
1092 |
+
msgid " Email Settings (Email Activation)"
|
1093 |
+
msgstr " E-postinnstillinger (e-postaktivering)"
|
1094 |
+
|
1095 |
+
#: classes/class.swpm-settings.php:189
|
1096 |
+
msgid "Enable Expired Account Login"
|
1097 |
+
msgstr "Aktiver pålogging for utløpt konto"
|
1098 |
+
|
1099 |
+
#: classes/class.swpm-settings.php:190
|
1100 |
+
msgid "When enabled, expired members will be able to log into the system but won't be able to view any protected content. This allows them to easily renew their account by making another payment."
|
1101 |
+
msgstr "Når dette er aktivert, kan utløpte medlemmer logge seg på systemet, men vil ikke kunne se noe beskyttet innhold. Dette lar dem enkelt fornye kontoen sin ved å foreta en ny betaling."
|
1102 |
+
|
1103 |
+
#: classes/class.swpm-settings.php:192
|
1104 |
+
msgid "Membership Renewal URL"
|
1105 |
+
msgstr "URL for medlemskap for fornyelse"
|
1106 |
+
|
1107 |
+
#: classes/class.swpm-settings.php:193
|
1108 |
+
msgid "You can create a renewal page for your site. Read <a href=\"https://simple-membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank\">this documentation</a> to learn how to create a renewal page."
|
1109 |
+
msgstr "Du kan opprette en fornyelsesside for nettstedet ditt. Les <a href=\"https://simple-membership-plugin.com/creating-membership-renewal-button/\" target=\"_blank\"> denne dokumentasjonen </a> for å lære hvordan du oppretter en fornyelsesside."
|
1110 |
+
|
1111 |
+
#: classes/class.swpm-settings.php:195
|
1112 |
+
msgid "After Registration Redirect URL"
|
1113 |
+
msgstr "Etter registrering omadressering av URL"
|
1114 |
+
|
1115 |
+
#: classes/class.swpm-settings.php:196
|
1116 |
+
msgid "You can enter an URL here to redirect the members to this page after they submit the registration form. Read <a href=\"https://simple-membership-plugin.com/configure-after-registration-redirect-for-members/\" target=\"_blank\">this documentation</a> to learn how to setup after registration redirect."
|
1117 |
+
msgstr "Du kan legge inn en URL her for å omdirigere medlemmene til denne siden etter at de har sendt inn registreringsskjemaet. Les <a href=\"https://simple-membership-plugin.com/configure-after-registration-redirect-for-members/\" target=\"_blank\"> denne dokumentasjonen </a> for å lære hvordan du konfigurerer etter registrering omdirigere."
|
1118 |
+
|
1119 |
+
#: classes/class.swpm-settings.php:198
|
1120 |
+
msgid "Enable Auto Login After Registration"
|
1121 |
+
msgstr "Aktiver automatisk pålogging etter registrering"
|
1122 |
+
|
1123 |
+
#: classes/class.swpm-settings.php:199
|
1124 |
+
msgid "Use this option if you want the members to be automatically logged into your site right after they complete the registration. This option will override any after registration redirection and instead it will trigger the after login redirection. Read <a href=\"https://simple-membership-plugin.com/configure-auto-login-after-registration-members/\" target=\"_blank\">this documentation</a> to learn more."
|
1125 |
+
msgstr "Bruk dette alternativet hvis du vil at medlemmene skal logges automatisk på nettstedet ditt rett etter at de har fullført registreringen. Dette alternativet vil overstyre eventuelle etter omdirigering av registrering, og i stedet utløse omdirigeringen etter innlogging. Les <a href=\"https://simple-membership-plugin.com/configure-auto-login-after-registration-members/\" target=\"_blank\"> denne dokumentasjonen </a> for å lære mer."
|
1126 |
+
|
1127 |
+
#: classes/class.swpm-settings.php:201
|
1128 |
+
msgid "After Logout Redirect URL"
|
1129 |
+
msgstr "Etter utlogging omadressering av URL"
|
1130 |
+
|
1131 |
+
#: classes/class.swpm-settings.php:202
|
1132 |
+
msgid "You can enter an URL here to redirect the members to this page after they click the logout link to logout from your site."
|
1133 |
+
msgstr "Du kan legge inn en URL her for å omdirigere medlemmene til denne siden etter at de har klikket på utloggingskoblingen for å logge ut fra nettstedet ditt."
|
1134 |
+
|
1135 |
+
#: classes/class.swpm-settings.php:204
|
1136 |
+
msgid "Logout Member on Browser Close"
|
1137 |
+
msgstr "Avloggingsmedlem i nettleserlukk"
|
1138 |
+
|
1139 |
+
#: classes/class.swpm-settings.php:205
|
1140 |
+
msgid "Enable this option if you want the member to be logged out of the account when he closes the browser."
|
1141 |
+
msgstr "Aktiver dette alternativet hvis du vil at medlemmet skal logges ut av kontoen når han lukker nettleseren."
|
1142 |
+
|
1143 |
+
#: classes/class.swpm-settings.php:207
|
1144 |
+
msgid "Allow Account Deletion"
|
1145 |
+
msgstr "Tillat sletting av kontoen"
|
1146 |
+
|
1147 |
+
#: classes/class.swpm-settings.php:208
|
1148 |
+
msgid "Allow users to delete their accounts."
|
1149 |
+
msgstr "Tillat brukere å slette kontoene sine."
|
1150 |
+
|
1151 |
+
#: classes/class.swpm-settings.php:210
|
1152 |
+
msgid "Force Strong Password for Members"
|
1153 |
+
msgstr "Tving kraftig passord for medlemmene"
|
1154 |
+
|
1155 |
+
#: classes/class.swpm-settings.php:211
|
1156 |
+
msgid "Enable this if you want the users to be forced to use a strong password for their accounts."
|
1157 |
+
msgstr "Aktiver dette hvis du vil at brukerne skal bli tvunget til å bruke et sterkt passord for kontoene sine."
|
1158 |
+
|
1159 |
+
#: classes/class.swpm-settings.php:213
|
1160 |
+
msgid "Use WordPress Timezone"
|
1161 |
+
msgstr "Bruk WordPress Tidssone"
|
1162 |
+
|
1163 |
+
#: classes/class.swpm-settings.php:214
|
1164 |
+
msgid "Use this option if you want to use the timezone value specified in your WordPress General Settings interface."
|
1165 |
+
msgstr "Bruk dette alternativet hvis du vil bruke tidssoneverdien som er spesifisert i WordPress General Settings-grensesnittet."
|
1166 |
+
|
1167 |
+
#: classes/class.swpm-settings.php:216
|
1168 |
+
msgid "Auto Delete Pending Account"
|
1169 |
+
msgstr "Slett ventende konto automatisk"
|
1170 |
+
|
1171 |
+
#: classes/class.swpm-settings.php:219
|
1172 |
+
msgid "Select how long you want to keep \"pending\" account."
|
1173 |
+
msgstr "Velg hvor lenge du vil beholde \"ventende\" konto."
|
1174 |
+
|
1175 |
+
#: classes/class.swpm-settings.php:221
|
1176 |
+
msgid "Admin Dashboard Access Permission"
|
1177 |
+
msgstr "Admin tillatelsestilgangstillatelse"
|
1178 |
+
|
1179 |
+
#: classes/class.swpm-settings.php:224
|
1180 |
+
msgid "SWPM admin dashboard is accessible to admin users only (just like any other plugin). You can allow users with other WP user role to access the SWPM admin dashboard by selecting a value here."
|
1181 |
+
msgstr "SWPM admin-dashbord er bare tilgjengelig for administratorbrukere (akkurat som alle andre pluginprogrammer). Du kan la brukere med en annen WP-brukerrolle få tilgang til SWPM-admin dashbordet ved å velge en verdi her."
|
1182 |
|
1183 |
+
#: classes/class.swpm-settings.php:226
|
1184 |
+
msgid "Force WP User Synchronization"
|
1185 |
+
msgstr "Tving WP-brukersynkronisering"
|
1186 |
+
|
1187 |
+
#: classes/class.swpm-settings.php:227
|
1188 |
+
msgid "Enable this option if you want to force the member login to be synchronized with WP user account. This can be useful if you are using another plugin that uses WP user records. For example: bbPress plugin."
|
1189 |
+
msgstr "Aktiver dette alternativet hvis du vil tvinge medlemspåloggingen til å synkroniseres med WP-brukerkontoen. Dette kan være nyttig hvis du bruker en annen plugin som bruker WP-brukerposter. For eksempel: bbPress-plugin."
|
1190 |
+
|
1191 |
+
#: classes/class.swpm-settings.php:230
|
1192 |
+
msgid "Create Member Accounts for New WP Users"
|
1193 |
+
msgstr "Lag medlemskontoer for nye WP-brukere"
|
1194 |
+
|
1195 |
+
#: classes/class.swpm-settings.php:232
|
1196 |
+
msgid "Enable Auto Create Member Accounts"
|
1197 |
+
msgstr "Aktiver automatisk oppretting av medlemskontoer"
|
1198 |
+
|
1199 |
+
#: classes/class.swpm-settings.php:233
|
1200 |
+
msgid "Enable this option to automatically create member accounts for any new WP user that is created by another plugin."
|
1201 |
+
msgstr "Aktiver dette alternativet for å automatisk opprette medlemskontoer for alle nye WP-brukere som er opprettet av en annen plugin."
|
1202 |
+
|
1203 |
+
#: classes/class.swpm-settings.php:236
|
1204 |
+
msgid "Default Membership Level"
|
1205 |
+
msgstr "Standard medlemsnivå"
|
1206 |
+
|
1207 |
+
#: classes/class.swpm-settings.php:239
|
1208 |
+
msgid "When automatically creating a member account using this feature, the membership level of the user will be set to the one you specify here."
|
1209 |
+
msgstr "Når du automatisk oppretter en medlemskonto ved hjelp av denne funksjonen, blir brukernivået til brukeren satt til det du angir her."
|
1210 |
+
|
1211 |
+
#: classes/class.swpm-settings.php:245
|
1212 |
+
msgid "When automatically creating a member account using this feature, the membership account status of the user will be set to the one you specify here."
|
1213 |
+
msgstr "Når du automatisk oppretter en medlemskonto ved hjelp av denne funksjonen, blir medlemskontoens status for brukeren satt til den du angir her."
|
1214 |
+
|
1215 |
+
#: classes/class.swpm-settings.php:247
|
1216 |
+
msgid "Payment Notification Forward URL"
|
1217 |
+
msgstr "Videresend betalingsvarsel URL"
|
1218 |
+
|
1219 |
+
#: classes/class.swpm-settings.php:248
|
1220 |
+
msgid "You can enter an URL here to forward the payment notification after the membership payment has been processed by this plugin. Useful if you want to forward the payment notification to an external script for further processing."
|
1221 |
+
msgstr "Du kan legge inn en URL her for å videresende betalingsvarslingen etter at medlemsbetalingen er behandlet av denne pluginen. Nyttig hvis du vil videresende betalingsvarslingen til et eksternt skript for videre behandling."
|
1222 |
+
|
1223 |
+
#: classes/class.swpm-settings.php:251 views/add.php:65
|
1224 |
+
msgid "Terms and Conditions"
|
1225 |
+
msgstr "Vilkår og betingelser"
|
1226 |
+
|
1227 |
+
#: classes/class.swpm-settings.php:253
|
1228 |
+
msgid "Enable Terms and Conditions"
|
1229 |
+
msgstr "Aktiver vilkår og betingelser"
|
1230 |
+
|
1231 |
+
#: classes/class.swpm-settings.php:254
|
1232 |
+
msgid "Users must accept the terms before they can complete the registration."
|
1233 |
+
msgstr "Brukere må godta vilkårene før de kan fullføre registreringen."
|
1234 |
+
|
1235 |
+
#: classes/class.swpm-settings.php:255
|
1236 |
+
msgid "Terms and Conditions Page URL"
|
1237 |
+
msgstr "Vilkår og betingelser Side URL"
|
1238 |
+
|
1239 |
+
#: classes/class.swpm-settings.php:256
|
1240 |
+
msgid "Enter the URL of your terms and conditions page. You can create a WordPress page and specify your terms in there then specify the URL of that page in the above field."
|
1241 |
+
msgstr "Skriv inn nettadressen til siden med vilkår og betingelser. Du kan opprette en WordPress-side og spesifisere vilkårene dine der, og angi URL-adressen til den siden i feltet ovenfor."
|
1242 |
+
|
1243 |
+
#: classes/class.swpm-settings.php:257
|
1244 |
+
msgid "Enable Privacy Policy"
|
1245 |
+
msgstr "Aktiver personvernregler"
|
1246 |
+
|
1247 |
+
#: classes/class.swpm-settings.php:258
|
1248 |
+
msgid "Users must accept it before they can complete the registration."
|
1249 |
+
msgstr "Brukere må godta det før de kan fullføre registreringen."
|
1250 |
+
|
1251 |
+
#: classes/class.swpm-settings.php:259
|
1252 |
+
msgid "Privacy Policy Page URL"
|
1253 |
+
msgstr "Side om personvernpolicy"
|
1254 |
+
|
1255 |
+
#: classes/class.swpm-settings.php:260
|
1256 |
+
msgid "Enter the URL of your privacy policy page."
|
1257 |
+
msgstr "Skriv inn nettadressen til siden for personvernregler."
|
1258 |
+
|
1259 |
+
#: classes/class.swpm-settings.php:350 classes/class.swpm-settings.php:396
|
1260 |
+
#: classes/class.swpm-settings.php:425
|
1261 |
+
msgid "Settings updated!"
|
1262 |
+
msgstr "Innstillingene er oppdatert!"
|
1263 |
+
|
1264 |
+
#: classes/class.swpm-settings.php:355
|
1265 |
+
msgid "General Plugin Settings."
|
1266 |
+
msgstr "Generelle plugin-innstillinger."
|
1267 |
+
|
1268 |
+
#: classes/class.swpm-settings.php:359
|
1269 |
+
msgid "Page Setup and URL Related settings."
|
1270 |
+
msgstr "Sideoppsett og URL-relaterte innstillinger."
|
1271 |
+
|
1272 |
+
#: classes/class.swpm-settings.php:362
|
1273 |
+
msgid "The following pages are required for the plugin to function correctly. These pages were automatically created by the plugin at install time."
|
1274 |
+
msgstr "Følgende sider kreves for at plugin-funksjonen skal fungere korrekt. Disse sidene ble automatisk opprettet av pluginen ved installasjonstidspunktet."
|
1275 |
+
|
1276 |
+
#: classes/class.swpm-settings.php:367
|
1277 |
+
msgid "Testing and Debug Related Settings."
|
1278 |
+
msgstr "Testing og feilsøkingsrelaterte innstillinger."
|
1279 |
+
|
1280 |
+
#: classes/class.swpm-settings.php:371
|
1281 |
+
msgid "This email will be sent to your users when they complete the registration and become a member."
|
1282 |
+
msgstr "Denne e-posten vil bli sendt til brukerne dine når de fullfører registreringen og blir medlem."
|
1283 |
+
|
1284 |
+
#: classes/class.swpm-settings.php:375
|
1285 |
+
msgid "This email will be sent to your users when they use the password reset functionality."
|
1286 |
+
msgstr "Denne e-posten vil bli sendt til brukerne dine når de bruker tilbakestillingen av passord."
|
1287 |
+
|
1288 |
+
#: classes/class.swpm-settings.php:381
|
1289 |
+
msgid "This interface lets you custsomize the various emails that gets sent to your members for various actions. The default settings should be good to get your started."
|
1290 |
+
msgstr "Dette grensesnittet lar deg bruke ulike e-postmeldinger som blir sendt til medlemmene dine for forskjellige handlinger. Standardinnstillingene skal være gode for å komme i gang."
|
1291 |
+
|
1292 |
+
#: classes/class.swpm-settings.php:385 views/admin_tools_settings.php:82
|
1293 |
+
msgid "This documentation"
|
1294 |
+
msgstr "Denne dokumentasjonen"
|
1295 |
+
|
1296 |
+
#: classes/class.swpm-settings.php:386
|
1297 |
+
msgid " explains what email merge tags you can use in the email body field to customize it (if you want to)."
|
1298 |
+
msgstr " forklarer hvilke e-flettingskoder du kan bruke i e-postfeltfeltet for å tilpasse dem (hvis du vil)."
|
1299 |
+
|
1300 |
+
#: classes/class.swpm-settings.php:399
|
1301 |
+
msgid "Settings in this section apply to all emails."
|
1302 |
+
msgstr "Innstillinger i denne delen gjelder alle e-postmeldinger."
|
1303 |
+
|
1304 |
+
#: classes/class.swpm-settings.php:403
|
1305 |
+
msgid "This email will be sent to your users after account upgrade (when an existing member pays for a new membership level)."
|
1306 |
+
msgstr "Denne e-posten blir sendt til brukerne dine etter kontooppgradering (når et eksisterende medlem betaler for et nytt medlemsnivå)."
|
1307 |
+
|
1308 |
+
#: classes/class.swpm-settings.php:407
|
1309 |
+
msgid "This email will be sent to your members when you use the bulk account activate and notify action."
|
1310 |
+
msgstr "Denne e-posten vil bli sendt til medlemmene dine når du bruker bulkkontoen for å aktivere og varsle handling."
|
1311 |
+
|
1312 |
+
#: classes/class.swpm-settings.php:408
|
1313 |
+
msgid " You cannot use email merge tags in this email. You can only use generic text."
|
1314 |
+
msgstr " Du kan ikke bruke e-flettingskoder i denne e-postmeldingen. Du kan bare bruke generisk tekst."
|
1315 |
+
|
1316 |
+
#: classes/class.swpm-settings.php:413
|
1317 |
+
msgid "This email will be sent if Email Activation is enabled for a Membership Level."
|
1318 |
+
msgstr "Denne e-posten vil bli sendt hvis e-postaktivering er aktivert for et medlemsnivå."
|
1319 |
+
|
1320 |
+
#: classes/class.swpm-settings.php:417
|
1321 |
+
msgid "This email will be sent to prompt users to complete registration after the payment."
|
1322 |
+
msgstr "Denne e-posten blir sendt til brukerne om å fullføre registreringen etter betalingen."
|
1323 |
+
|
1324 |
+
#: classes/class.swpm-settings.php:428
|
1325 |
+
msgid "This page allows you to configure some advanced features of the plugin."
|
1326 |
+
msgstr "Denne siden lar deg konfigurere noen avanserte funksjoner i plugin-modulen."
|
1327 |
+
|
1328 |
+
#: classes/class.swpm-settings.php:432
|
1329 |
+
msgid "This section allows you to configure automatic creation of member accounts when new WP User records are created by another plugin. It can be useful if you are using another plugin that creates WP user records and you want them to be recognized in the membership plugin."
|
1330 |
+
msgstr "Denne delen lar deg konfigurere automatisk oppretting av medlemskontoer når nye WP-brukerposter opprettes av en annen plugin. Det kan være nyttig hvis du bruker en annen plugin som oppretter WP-brukerposter, og du vil at de skal bli gjenkjent i medlemskapsprogrammet."
|
1331 |
+
|
1332 |
+
#: classes/class.swpm-settings.php:436
|
1333 |
+
msgid "This section allows you to configure terms and conditions and privacy policy that users must accept at registration time."
|
1334 |
+
msgstr "Denne delen lar deg konfigurere vilkår og betingelser og personvernregler som brukere må godta på registreringstidspunktet."
|
1335 |
+
|
1336 |
+
#: classes/class.swpm-settings.php:565
|
1337 |
+
msgid "Simple WP Membership::Settings"
|
1338 |
+
msgstr "Enkelt WP-medlemskap :: Innstillinger"
|
1339 |
+
|
1340 |
+
#: classes/class.swpm-utils-member.php:36
|
1341 |
+
#: classes/class.swpm-utils-member.php:44
|
1342 |
+
#: classes/class.swpm-utils-member.php:52
|
1343 |
+
#: classes/class.swpm-utils-member.php:62
|
1344 |
+
msgid "User is not logged in."
|
1345 |
+
msgstr "Brukeren er ikke logget inn."
|
1346 |
+
|
1347 |
+
#: classes/class.swpm-utils-member.php:80
|
1348 |
+
msgid "No Expiry"
|
1349 |
+
msgstr "Ingen utløp"
|
1350 |
+
|
1351 |
+
#: classes/class.swpm-utils-misc.php:50
|
1352 |
+
msgid "Registration"
|
1353 |
+
msgstr "Registrering"
|
1354 |
+
|
1355 |
+
#: classes/class.swpm-utils-misc.php:73
|
1356 |
+
msgid "Member Login"
|
1357 |
+
msgstr "Medlems innlogging"
|
1358 |
+
|
1359 |
+
#: classes/class.swpm-utils-misc.php:96
|
1360 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:117
|
1361 |
+
msgid "Profile"
|
1362 |
+
msgstr "Profil"
|
1363 |
+
|
1364 |
+
#: classes/class.swpm-utils-misc.php:119
|
1365 |
+
msgid "Password Reset"
|
1366 |
+
msgstr "Reset passord"
|
1367 |
+
|
1368 |
+
#: classes/class.swpm-utils-misc.php:168
|
1369 |
+
msgid "You will be automatically redirected in a few seconds. If not, please %s."
|
1370 |
+
msgstr "Du blir automatisk omdirigert om noen få sekunder. Hvis ikke, vennligst% s."
|
1371 |
+
|
1372 |
+
#: classes/class.swpm-utils-misc.php:172
|
1373 |
+
msgid "Action Status"
|
1374 |
+
msgstr "Handlingsstatus"
|
1375 |
+
|
1376 |
+
#: classes/class.swpm-utils-misc.php:274
|
1377 |
msgid "Not a Member?"
|
1378 |
+
msgstr "Ikke et medlem?"
|
1379 |
|
1380 |
+
#: classes/class.swpm-utils-misc.php:285
|
1381 |
+
msgid "renew"
|
1382 |
+
msgstr "fornye"
|
1383 |
+
|
1384 |
+
#: classes/class.swpm-utils-misc.php:285
|
1385 |
+
msgid " your account to gain access to this content."
|
1386 |
+
msgstr " kontoen din for å få tilgang til dette innholdet."
|
1387 |
+
|
1388 |
+
#: classes/class.swpm-utils-misc.php:343 classes/class.swpm-utils-misc.php:349
|
1389 |
+
msgid "Error! This action ("
|
1390 |
+
msgstr "Feil! Denne handlingen ("
|
1391 |
|
1392 |
+
#: classes/class.swpm-utils-misc.php:421
|
1393 |
+
msgid "(Please Select)"
|
1394 |
+
msgstr "(Vennligst velg)"
|
1395 |
+
|
1396 |
+
#: classes/class.swpm-utils-template.php:38
|
1397 |
+
msgid "Error! Failed to find a template path for the specified template: "
|
1398 |
+
msgstr "Feil! Kunne ikke finne en malbane for den spesifiserte malen: "
|
1399 |
+
|
1400 |
+
#: classes/class.swpm-utils.php:101
|
1401 |
+
msgid "Never"
|
1402 |
+
msgstr "Aldri"
|
1403 |
+
|
1404 |
+
#: classes/class.swpm-utils.php:116 views/admin_members_list.php:19
|
1405 |
msgid "Active"
|
1406 |
msgstr "Aktiv"
|
1407 |
|
1408 |
+
#: classes/class.swpm-utils.php:117 views/admin_members_list.php:20
|
1409 |
msgid "Inactive"
|
1410 |
+
msgstr "Uvirksom"
|
1411 |
|
1412 |
+
#: classes/class.swpm-utils.php:118 views/admin_members_list.php:21
|
1413 |
+
msgid "Activation Required"
|
1414 |
+
msgstr "Aktivering kreves"
|
1415 |
+
|
1416 |
+
#: classes/class.swpm-utils.php:119 views/admin_members_list.php:22
|
1417 |
msgid "Pending"
|
1418 |
msgstr "Avventer"
|
1419 |
|
1420 |
+
#: classes/class.swpm-utils.php:120 views/admin_members_list.php:24
|
1421 |
msgid "Expired"
|
1422 |
msgstr "Utløpt"
|
1423 |
|
1424 |
+
#: classes/class.swpm-utils.php:414 views/account_delete_warning.php:3
|
1425 |
+
msgid "Delete Account"
|
1426 |
+
msgstr "Slett konto"
|
1427 |
|
1428 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:75
|
1429 |
+
msgid "Payment Button ID"
|
1430 |
+
msgstr "Betalingsknapp-ID"
|
1431 |
|
1432 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:76
|
1433 |
+
msgid "Payment Button Title"
|
1434 |
+
msgstr "Betalingsknapptittel"
|
1435 |
|
1436 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:77
|
1437 |
+
msgid "Membership Level ID"
|
1438 |
+
msgstr "Medlemskaps-ID"
|
1439 |
|
1440 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:78
|
1441 |
+
msgid "Button Type"
|
1442 |
+
msgstr "Knappetype"
|
1443 |
|
1444 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:79
|
1445 |
+
msgid "Button Shortcode"
|
1446 |
+
msgstr "Knappekode"
|
1447 |
|
1448 |
+
#: classes/admin-includes/class.swpm-payment-buttons-list-table.php:127
|
1449 |
+
#: views/admin_members_list.php:9
|
1450 |
+
#: views/payments/admin_all_payment_transactions.php:32
|
1451 |
+
msgid "The selected entry was deleted!"
|
1452 |
+
msgstr "Den valgte oppføringen ble slettet!"
|
1453 |
|
1454 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:21
|
1455 |
+
msgid "Simple Membership::Payments"
|
1456 |
+
msgstr "Enkelt medlemskap :: Betalinger"
|
1457 |
|
1458 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:25
|
1459 |
+
msgid "Transactions"
|
1460 |
+
msgstr "Transaksjoner"
|
1461 |
|
1462 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:26
|
1463 |
+
msgid "Manage Payment Buttons"
|
1464 |
+
msgstr "Administrer betalingsknapper"
|
1465 |
|
1466 |
+
#: classes/admin-includes/class.swpm-payments-admin-menu.php:27
|
1467 |
+
#: views/payments/admin_payment_buttons.php:27
|
1468 |
+
msgid "Create New Button"
|
1469 |
+
msgstr "Lag ny knapp"
|
1470 |
|
1471 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:57
|
1472 |
+
#: views/template-1.php:95 views/template-2.php:97
|
1473 |
+
msgid "View Profile"
|
1474 |
+
msgstr "Vis profil"
|
1475 |
|
1476 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:76
|
1477 |
+
msgid "Row ID"
|
1478 |
+
msgstr "Rad-ID"
|
1479 |
+
|
1480 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:77
|
1481 |
+
#: views/forgot_password.php:5
|
1482 |
+
msgid "Email Address"
|
1483 |
+
msgstr "Epostadresse"
|
1484 |
+
|
1485 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:80
|
1486 |
+
msgid "Member Profile"
|
1487 |
+
msgstr "Medlemsprofil"
|
1488 |
+
|
1489 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:82
|
1490 |
+
msgid "Transaction ID"
|
1491 |
+
msgstr "Transaksjons-ID"
|
1492 |
+
|
1493 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:83
|
1494 |
+
msgid "Subscriber ID"
|
1495 |
+
msgstr "Abonnent-ID"
|
1496 |
+
|
1497 |
+
#: classes/admin-includes/class.swpm-payments-list-table.php:84
|
1498 |
+
msgid "Amount"
|
1499 |
+
msgstr "Beløp"
|
1500 |
+
|
1501 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:60
|
1502 |
+
msgid "Your membership profile will be updated to reflect the payment."
|
1503 |
+
msgstr "Medlemsprofilen din vil bli oppdatert for å gjenspeile betalingen."
|
1504 |
+
|
1505 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:61
|
1506 |
+
msgid "Your profile username: "
|
1507 |
+
msgstr "Brukernavnet til profilen din: "
|
1508 |
|
1509 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:73
|
1510 |
+
msgid "Click on the following link to complete the registration."
|
1511 |
+
msgstr "Klikk på følgende lenke for å fullføre registreringen."
|
1512 |
+
|
1513 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:74
|
1514 |
+
msgid "Click here to complete your paid registration"
|
1515 |
+
msgstr "Klikk her for å fullføre den betalte registreringen"
|
1516 |
+
|
1517 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:79
|
1518 |
+
msgid "If you have just made a membership payment then your payment is yet to be processed. Please check back in a few minutes. An email will be sent to you with the details shortly."
|
1519 |
+
msgstr "Hvis du nettopp har utført et medlemsbetaling, er betalingen ennå ikke behandlet. Kom tilbake om noen minutter. En e-post vil bli sendt til deg med detaljer innen kort tid."
|
1520 |
+
|
1521 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:93
|
1522 |
+
msgid "Expiry: "
|
1523 |
+
msgstr "Utløps: "
|
1524 |
+
|
1525 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:95
|
1526 |
+
msgid "You are not logged-in as a member"
|
1527 |
+
msgstr "Du er ikke logget inn som medlem"
|
1528 |
+
|
1529 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:115
|
1530 |
+
msgid "Logged in as: "
|
1531 |
+
msgstr "Logget inn som: "
|
1532 |
+
|
1533 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:118
|
1534 |
+
#: views/loggedin.php:31
|
1535 |
+
msgid "Logout"
|
1536 |
+
msgstr "Logg ut"
|
1537 |
+
|
1538 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:121
|
1539 |
+
msgid "Login Here"
|
1540 |
+
msgstr "Logg inn her"
|
1541 |
+
|
1542 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:122
|
1543 |
+
msgid "Not a member? "
|
1544 |
+
msgstr "Ikke et medlem? "
|
1545 |
+
|
1546 |
+
#: classes/shortcode-related/class.swpm-shortcodes-handler.php:123
|
1547 |
+
msgid "Join Now"
|
1548 |
+
msgstr "Bli med nå"
|
1549 |
+
|
1550 |
+
#: ipn/swpm-smart-checkout-ipn.php:260 ipn/swpm-smart-checkout-ipn.php:285
|
1551 |
+
msgid "Error occured during payment verification. Error code: %d. Message: %s"
|
1552 |
+
msgstr "Det oppsto en feil under betalingsverifiseringen. Feilkode:% d. Melding:% s"
|
1553 |
+
|
1554 |
+
#: ipn/swpm-smart-checkout-ipn.php:298
|
1555 |
+
msgid "Payment check failed: invalid amount received. Expected %s %s, got %s %s."
|
1556 |
+
msgstr "Betalingskontroll mislyktes: ugyldig beløp mottatt. Forventet% s% s, fikk% s% s."
|
1557 |
+
|
1558 |
+
#: ipn/swpm-smart-checkout-ipn.php:315
|
1559 |
+
msgid "Empty payment data received."
|
1560 |
+
msgstr "Tom betalingsdata mottatt."
|
1561 |
+
|
1562 |
+
#: ipn/swpm-smart-checkout-ipn.php:355
|
1563 |
+
msgid "IPN product validation failed. Check debug log for more details."
|
1564 |
+
msgstr "Validering av IPN-produkt mislyktes. Sjekk avlusingsloggen for mer informasjon."
|
1565 |
+
|
1566 |
+
#: views/account_delete_warning.php:7
|
1567 |
+
msgid "You are about to delete an account. This will delete user data associated with this account. "
|
1568 |
+
msgstr "Du er i ferd med å slette en konto. Dette vil slette brukerdata tilknyttet denne kontoen. "
|
1569 |
+
|
1570 |
+
#: views/account_delete_warning.php:8
|
1571 |
+
msgid "It will also delete associated WordPress user account."
|
1572 |
+
msgstr "Den vil også slette tilknyttet WordPress-brukerkonto."
|
1573 |
+
|
1574 |
+
#: views/account_delete_warning.php:9
|
1575 |
+
msgid "(NOTE: for safety, we do not allow deletion of any associated WordPress account with administrator role)."
|
1576 |
+
msgstr "(MERKNAD: for sikkerhets skyld tillater vi ikke sletting av tilknyttet WordPress-konto med administratorrolle)."
|
1577 |
+
|
1578 |
+
#: views/account_delete_warning.php:10
|
1579 |
+
msgid "Continue?"
|
1580 |
+
msgstr "Fortsette?"
|
1581 |
+
|
1582 |
+
#: views/account_delete_warning.php:13
|
1583 |
+
msgid "Password: "
|
1584 |
+
msgstr "Passord: "
|
1585 |
+
|
1586 |
+
#: views/account_delete_warning.php:14
|
1587 |
+
msgid "Confirm Account Deletion"
|
1588 |
+
msgstr "Bekreft sletting av kontoen"
|
1589 |
+
|
1590 |
+
#: views/add.php:24 views/admin_add.php:19 views/admin_edit.php:44
|
1591 |
+
#: views/edit.php:31 views/login.php:17
|
1592 |
msgid "Password"
|
1593 |
msgstr "Passord"
|
1594 |
|
1595 |
+
#: views/add.php:28 views/edit.php:35
|
1596 |
msgid "Repeat Password"
|
1597 |
msgstr "Gjenta passord"
|
1598 |
|
1599 |
+
#: views/add.php:65
|
1600 |
+
msgid "I accept the "
|
1601 |
+
msgstr "Jeg godtar "
|
1602 |
|
1603 |
+
#: views/add.php:77
|
1604 |
+
msgid "I agree to the "
|
1605 |
+
msgstr "Jeg er enig i "
|
1606 |
|
1607 |
+
#: views/add.php:77
|
1608 |
+
msgid "Privacy Policy"
|
1609 |
+
msgstr "Personvern"
|
1610 |
|
1611 |
+
#: views/add.php:88
|
1612 |
+
msgid "Register"
|
1613 |
+
msgstr "Registrere"
|
1614 |
|
1615 |
+
#: views/admin_add.php:7
|
1616 |
+
msgid "Create a brand new user and add it to this site."
|
1617 |
+
msgstr "Opprett en helt ny bruker og legg den til på dette nettstedet."
|
1618 |
+
|
1619 |
+
#: views/admin_add.php:11 views/admin_add.php:15 views/admin_add_level.php:12
|
1620 |
+
#: views/admin_add_level.php:16 views/admin_add_level.php:20
|
1621 |
+
#: views/admin_edit.php:19 views/admin_edit.php:40
|
1622 |
+
#: views/admin_edit_level.php:16 views/admin_edit_level.php:20
|
1623 |
+
#: views/admin_edit_level.php:24
|
|
|
1624 |
msgid "(required)"
|
1625 |
+
msgstr "(Obligatorisk)"
|
1626 |
|
1627 |
+
#: views/admin_add.php:15 views/admin_edit.php:40
|
|
|
1628 |
msgid "E-mail"
|
1629 |
+
msgstr "E-post"
|
1630 |
|
1631 |
+
#: views/admin_add.php:19
|
1632 |
msgid "(twice, required)"
|
1633 |
+
msgstr "(to ganger, påkrevd)"
|
1634 |
|
1635 |
+
#: views/admin_add.php:24 views/admin_edit.php:48
|
|
|
1636 |
msgid "Strength indicator"
|
1637 |
msgstr "Styrkeindikator"
|
1638 |
|
1639 |
+
#: views/admin_add.php:25 views/admin_edit.php:49
|
1640 |
+
msgid "Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! \" ? $ % ^ & )."
|
1641 |
+
msgstr "Tips: Passordet skal være minst syv tegn langt. For å gjøre det sterkere, bruk store og små bokstaver, tall og symboler som! \"? $% ^ & amp;)."
|
|
|
|
|
|
|
|
|
|
|
|
|
1642 |
|
1643 |
+
#: views/admin_add.php:29 views/admin_edit.php:53 views/loggedin.php:10
|
|
|
|
|
1644 |
msgid "Account Status"
|
1645 |
+
msgstr "Konto status"
|
1646 |
|
1647 |
+
#: views/admin_add.php:39
|
1648 |
msgid "Add New Member "
|
1649 |
msgstr "Legg til nytt medlem "
|
1650 |
|
1651 |
+
#: views/admin_addon_settings.php:3
|
1652 |
+
msgid "Some of the simple membership plugin's addon settings and options will be displayed here (if you have them)"
|
1653 |
+
msgstr "Noen av de enkle innstillinger og alternativer for tilleggsprogrammet for plugin-medlemskap vises her (hvis du har dem)"
|
|
|
|
|
|
|
1654 |
|
1655 |
+
#: views/admin_addon_settings.php:8
|
1656 |
+
msgid "Save Changes"
|
1657 |
+
msgstr "Lagre endringer"
|
|
|
|
|
|
|
|
|
1658 |
|
1659 |
+
#: views/admin_add_level.php:6
|
1660 |
+
msgid "Add Membership Level"
|
1661 |
+
msgstr "Legg til medlemsnivå"
|
1662 |
+
|
1663 |
+
#: views/admin_add_level.php:7
|
1664 |
msgid "Create new membership level."
|
1665 |
msgstr "Opprett nytt medlemsnivå."
|
1666 |
|
1667 |
+
#: views/admin_add_level.php:12 views/admin_edit_level.php:16
|
|
|
1668 |
msgid "Membership Level Name"
|
1669 |
+
msgstr "Navn på medlemskapsnivå"
|
1670 |
|
1671 |
+
#: views/admin_add_level.php:16 views/admin_edit_level.php:20
|
|
|
1672 |
msgid "Default WordPress Role"
|
1673 |
+
msgstr "Standard WordPress-rolle"
|
1674 |
|
1675 |
+
#: views/admin_add_level.php:20 views/admin_edit_level.php:24
|
|
|
1676 |
msgid "Access Duration"
|
1677 |
+
msgstr "Tilgangs varighet"
|
1678 |
|
1679 |
+
#: views/admin_add_level.php:23
|
1680 |
msgid "No Expiry (Access for this level will not expire until cancelled"
|
1681 |
+
msgstr "Ingen utløp (Tilgang for dette nivået utløper ikke før du avbryter"
|
1682 |
+
|
1683 |
+
#: views/admin_add_level.php:24 views/admin_add_level.php:26
|
1684 |
+
#: views/admin_add_level.php:28 views/admin_add_level.php:30
|
1685 |
+
#: views/admin_edit_level.php:28 views/admin_edit_level.php:31
|
1686 |
+
#: views/admin_edit_level.php:34 views/admin_edit_level.php:37
|
|
|
|
|
|
|
|
|
|
|
|
|
1687 |
msgid "Expire After"
|
1688 |
msgstr "Utløper etter"
|
1689 |
|
1690 |
+
#: views/admin_add_level.php:25 views/admin_edit_level.php:29
|
|
|
1691 |
msgid "Days (Access expires after given number of days)"
|
1692 |
+
msgstr "Dager (tilgang utløper etter gitt antall dager)"
|
1693 |
|
1694 |
+
#: views/admin_add_level.php:27
|
1695 |
msgid "Weeks (Access expires after given number of weeks"
|
1696 |
+
msgstr "Uker (Tilgang utløper etter gitt antall uker"
|
1697 |
|
1698 |
+
#: views/admin_add_level.php:29 views/admin_edit_level.php:35
|
|
|
1699 |
msgid "Months (Access expires after given number of months)"
|
1700 |
+
msgstr "Måneder (Tilgang utløper etter gitt antall måneder)"
|
1701 |
|
1702 |
+
#: views/admin_add_level.php:31 views/admin_edit_level.php:38
|
|
|
1703 |
msgid "Years (Access expires after given number of years)"
|
1704 |
+
msgstr "År (tilgang utløper etter gitt antall år)"
|
1705 |
|
1706 |
+
#: views/admin_add_level.php:32 views/admin_edit_level.php:40
|
|
|
1707 |
msgid "Fixed Date Expiry"
|
1708 |
+
msgstr "Utløpet av fast dato"
|
1709 |
|
1710 |
+
#: views/admin_add_level.php:33 views/admin_edit_level.php:41
|
|
|
1711 |
msgid "(Access expires on a fixed date)"
|
1712 |
+
msgstr "(Tilgang utløper på en fast dato)"
|
1713 |
+
|
1714 |
+
#: views/admin_add_level.php:38 views/admin_edit_level.php:46
|
1715 |
+
msgid "Email Activation"
|
1716 |
+
msgstr "E-postaktivering"
|
1717 |
|
1718 |
+
#: views/admin_add_level.php:43
|
1719 |
+
msgid "Enable new user activation via email. When enabled, members will need to click on an activation link that is sent to their email address to activate the account. Useful for free membership. "
|
1720 |
+
msgstr "Aktiver ny brukeraktivering via e-post. Når det er aktivert, må medlemmene klikke på en aktiveringslenke som sendes til e-postadressen deres for å aktivere kontoen. Nyttig for gratis medlemskap. "
|
1721 |
|
1722 |
+
#: views/admin_add_level.php:44 views/admin_edit_level.php:52
|
1723 |
+
msgid "View Documentation"
|
1724 |
+
msgstr "Vis dokumentasjon"
|
1725 |
|
1726 |
+
#: views/admin_add_level.php:45 views/admin_edit_level.php:53
|
1727 |
+
msgid "Note:"
|
1728 |
+
msgstr "Merk:"
|
1729 |
+
|
1730 |
+
#: views/admin_add_level.php:45 views/admin_edit_level.php:53
|
1731 |
+
msgid "If enabled, decryptable member password is temporarily stored in the database until the account is activated."
|
1732 |
+
msgstr "Hvis det er aktivert, blir dekrypterbart medlemspassord midlertidig lagret i databasen til kontoen er aktivert."
|
1733 |
+
|
1734 |
+
#: views/admin_add_level.php:52
|
1735 |
msgid "Add New Membership Level "
|
1736 |
+
msgstr "Legg til nytt medlemsnivå "
|
1737 |
|
1738 |
+
#: views/admin_add_ons_page.php:7
|
1739 |
msgid "Simple WP Membership::Add-ons"
|
1740 |
+
msgstr "Enkelt WP-medlemskap :: Tillegg"
|
1741 |
|
1742 |
+
#: views/admin_category_list.php:5
|
1743 |
+
msgid "First of all, globally protect the category on your site by selecting \"General Protection\" from the drop-down box below and then select the categories that should be protected from non-logged in users."
|
1744 |
+
msgstr "Først av alt, beskytte kategorien på nettstedet ditt globalt ved å velge \"Generell beskyttelse\" fra rullegardinboksen nedenfor og deretter velge kategoriene som skal beskyttes mot ikke-innloggede brukere."
|
1745 |
|
1746 |
+
#: views/admin_category_list.php:8
|
1747 |
+
msgid "Next, select an existing membership level from the drop-down box below and then select the categories you want to grant access to (for that particular membership level)."
|
1748 |
+
msgstr "Velg deretter et eksisterende medlemsnivå fra rullegardinboksen nedenfor, og velg deretter kategoriene du vil gi tilgang til (for det aktuelle medlemsnivået)."
|
|
|
|
|
|
|
|
|
|
|
|
|
1749 |
|
1750 |
+
#: views/admin_category_list.php:11 views/admin_post_list.php:11
|
1751 |
+
msgid "Read the "
|
1752 |
+
msgstr "Les "
|
1753 |
+
|
1754 |
+
#: views/admin_category_list.php:11
|
1755 |
+
msgid "category protection documentation"
|
1756 |
+
msgstr "dokumentasjon for kategoribeskyttelse"
|
|
|
|
|
1757 |
|
1758 |
+
#: views/admin_category_list.php:17 views/admin_post_list.php:27
|
1759 |
+
msgid "Membership Level:"
|
1760 |
+
msgstr "Medlemskapsnivå:"
|
1761 |
+
|
1762 |
+
#: views/admin_category_list.php:19 views/admin_post_list.php:29
|
1763 |
+
msgid "General Protection"
|
1764 |
+
msgstr "Generell beskyttelse"
|
1765 |
+
|
1766 |
+
#: views/admin_category_list.php:23 views/admin_post_list.php:33
|
1767 |
+
#: views/edit.php:83
|
1768 |
+
msgid "Update"
|
1769 |
+
msgstr "Oppdater"
|
1770 |
+
|
1771 |
+
#: views/admin_edit.php:11
|
1772 |
msgid "Edit Member"
|
1773 |
+
msgstr "Rediger medlem"
|
1774 |
|
1775 |
+
#: views/admin_edit.php:13
|
1776 |
msgid "Edit existing member details."
|
1777 |
+
msgstr "Rediger eksisterende medlemsdetaljer."
|
1778 |
|
1779 |
+
#: views/admin_edit.php:14
|
1780 |
+
msgid " You are currenty editing member with member ID: "
|
1781 |
+
msgstr " Du redigerer medlem med medlems-ID: "
|
1782 |
|
1783 |
+
#: views/admin_edit.php:44
|
1784 |
msgid "(twice, leave empty to retain old password)"
|
1785 |
+
msgstr "(to ganger, la stå tomt for å beholde gammelt passord)"
|
1786 |
|
1787 |
+
#: views/admin_edit.php:59
|
1788 |
+
msgid "This is the member's account status. If you want to manually activate an expired member's account then read"
|
1789 |
+
msgstr "Dette er medlemets kontostatus. Hvis du vil aktivere et utløpt medlemskonto manuelt, må du lese"
|
1790 |
|
1791 |
+
#: views/admin_edit.php:60
|
1792 |
+
msgid "this documentation"
|
1793 |
+
msgstr "denne dokumentasjonen"
|
1794 |
|
1795 |
+
#: views/admin_edit.php:61
|
1796 |
+
msgid " to learn how to do it."
|
1797 |
+
msgstr " å lære å gjøre det."
|
1798 |
|
1799 |
+
#: views/admin_edit.php:66
|
1800 |
+
msgid "Notify User"
|
1801 |
+
msgstr "Varsle bruker"
|
1802 |
|
1803 |
+
#: views/admin_edit.php:69
|
1804 |
+
msgid "You can use this option to send a quick notification email to this member (the email will be sent when you hit the save button below)."
|
1805 |
+
msgstr "Du kan bruke dette alternativet til å sende en rask varslings-e-post til dette medlemmet (e-posten blir sendt når du trykker på lagre-knappen nedenfor)."
|
|
|
1806 |
|
1807 |
+
#: views/admin_edit.php:75
|
1808 |
+
msgid "Subscriber ID/Reference"
|
1809 |
+
msgstr "Abonnent-ID / referanse"
|
1810 |
|
1811 |
+
#: views/admin_edit.php:79
|
1812 |
+
msgid "Last Accessed Date"
|
1813 |
+
msgstr "Sist åpnet dato"
|
1814 |
|
1815 |
+
#: views/admin_edit.php:82 views/admin_edit.php:89
|
1816 |
+
msgid "This value gets updated when this member logs into your site."
|
1817 |
+
msgstr "Denne verdien blir oppdatert når dette medlemmet logger på nettstedet ditt."
|
|
|
|
|
|
|
1818 |
|
1819 |
+
#: views/admin_edit.php:86
|
1820 |
+
msgid "Last Accessed From IP"
|
1821 |
+
msgstr "Sist tilgang fra IP"
|
1822 |
|
1823 |
+
#: views/admin_edit.php:97
|
1824 |
+
msgid "Save Data"
|
1825 |
+
msgstr "Lagre data"
|
1826 |
|
1827 |
+
#: views/admin_edit.php:102
|
1828 |
+
msgid "Delete User Profile"
|
1829 |
+
msgstr "Slett brukerprofil"
|
|
|
|
|
1830 |
|
1831 |
+
#: views/admin_edit_level.php:6
|
1832 |
+
msgid "Edit membership level"
|
1833 |
+
msgstr "Rediger medlemsnivå"
|
|
|
1834 |
|
1835 |
+
#: views/admin_edit_level.php:9
|
1836 |
+
msgid "You can edit details of a selected membership level from this interface. "
|
1837 |
+
msgstr "Du kan redigere detaljer om et valgt medlemsnivå fra dette grensesnittet. "
|
1838 |
|
1839 |
+
#: views/admin_edit_level.php:10
|
1840 |
+
msgid "You are currently editing: "
|
1841 |
+
msgstr "Du redigerer for øyeblikket: "
|
1842 |
|
1843 |
+
#: views/admin_edit_level.php:27
|
1844 |
+
msgid "No Expiry (Access for this level will not expire until cancelled)"
|
1845 |
+
msgstr "Ingen utløp (tilgang for dette nivået utløper ikke før du avbryter)"
|
1846 |
|
1847 |
+
#: views/admin_edit_level.php:32
|
1848 |
+
msgid "Weeks (Access expires after given number of weeks)"
|
1849 |
+
msgstr "Uker (tilgang utløper etter gitt antall uker)"
|
1850 |
|
1851 |
+
#: views/admin_edit_level.php:51
|
1852 |
+
msgid "Enable new user activation via email. When enabled, members will need to click on an activation link that is sent to their email address to activate the account. Useful for free membership."
|
1853 |
+
msgstr "Aktiver ny brukeraktivering via e-post. Når det er aktivert, må medlemmene klikke på en aktiveringslenke som sendes til e-postadressen deres for å aktivere kontoen. Nyttig for gratis medlemskap."
|
1854 |
+
|
1855 |
+
#: views/admin_edit_level.php:60
|
1856 |
+
msgid "Save Membership Level "
|
1857 |
+
msgstr "Lagre medlemsnivå "
|
1858 |
+
|
1859 |
+
#: views/admin_membership_manage.php:18
|
1860 |
msgid "Example Content Protection Settings"
|
1861 |
+
msgstr "Eksempel Innstillinger for innholdsbeskyttelse"
|
1862 |
+
|
1863 |
+
#: views/admin_members_list.php:18
|
1864 |
+
msgid "All"
|
1865 |
+
msgstr "Alle"
|
1866 |
|
1867 |
+
#: views/admin_members_list.php:23
|
1868 |
+
msgid "Incomplete"
|
1869 |
+
msgstr "Ufullstendig"
|
1870 |
+
|
1871 |
+
#: views/admin_member_form_common_part.php:23
|
1872 |
+
#: includes/swpm_mda_show_profile.php:37
|
1873 |
msgid "Gender"
|
1874 |
msgstr "Kjønn"
|
1875 |
|
1876 |
+
#: views/admin_member_form_common_part.php:30 views/edit.php:47
|
1877 |
+
#: includes/swpm_mda_show_profile.php:34
|
1878 |
msgid "Phone"
|
1879 |
msgstr "Telefon"
|
1880 |
|
1881 |
+
#: views/admin_member_form_common_part.php:34 views/edit.php:51
|
|
|
1882 |
msgid "Street"
|
1883 |
+
msgstr "Gate"
|
1884 |
|
1885 |
+
#: views/admin_member_form_common_part.php:38 views/edit.php:55
|
|
|
1886 |
msgid "City"
|
1887 |
+
msgstr "By"
|
1888 |
|
1889 |
+
#: views/admin_member_form_common_part.php:42 views/edit.php:59
|
|
|
1890 |
msgid "State"
|
1891 |
+
msgstr "Stat"
|
1892 |
|
1893 |
+
#: views/admin_member_form_common_part.php:46 views/edit.php:63
|
|
|
1894 |
msgid "Zipcode"
|
1895 |
+
msgstr "Post kode"
|
1896 |
|
1897 |
+
#: views/admin_member_form_common_part.php:50 views/edit.php:67
|
1898 |
+
#: includes/swpm_mda_show_profile.php:33
|
1899 |
msgid "Country"
|
1900 |
msgstr "Land"
|
1901 |
|
1902 |
+
#: views/admin_member_form_common_part.php:54
|
1903 |
+
#: includes/swpm_mda_show_profile.php:38
|
1904 |
msgid "Company"
|
1905 |
+
msgstr "Selskap"
|
1906 |
|
1907 |
+
#: views/admin_member_form_common_part.php:58
|
1908 |
+
#: includes/swpm_mda_show_profile.php:36
|
1909 |
msgid "Member Since"
|
1910 |
msgstr "Medlem siden"
|
1911 |
|
1912 |
+
#: views/admin_post_list.php:5
|
1913 |
+
msgid "First of all, globally protect posts and pages on your site by selecting \"General Protection\" from the drop-down box below and then select posts and pages that should be protected from non-logged in users."
|
1914 |
+
msgstr "Først av alt, beskytte innlegg og sider på nettstedet ditt globalt ved å velge \"Generell beskyttelse\" fra rullegardinboksen nedenfor og deretter velge innlegg og sider som skal beskyttes mot ikke-innloggede brukere."
|
1915 |
|
1916 |
+
#: views/admin_post_list.php:8
|
1917 |
+
msgid "Next, select an existing membership level from the drop-down box below and then select posts and pages you want to grant access to (for that particular membership level)."
|
1918 |
+
msgstr "Velg deretter et eksisterende medlemsnivå fra rullegardinboksen nedenfor, og velg deretter innlegg og sider du vil gi tilgang til (for det aktuelle medlemsnivået)."
|
1919 |
|
1920 |
+
#: views/admin_post_list.php:11
|
1921 |
+
msgid "bulk protect posts and pages documentation"
|
1922 |
+
msgstr "bulk-beskyttelse av innlegg og sider dokumentasjon"
|
1923 |
|
1924 |
+
#: views/admin_post_list.php:11
|
1925 |
+
msgid " to learn how to use it."
|
1926 |
+
msgstr " å lære å bruke det."
|
1927 |
|
1928 |
+
#: views/admin_post_list.php:21
|
1929 |
+
msgid "Posts"
|
1930 |
+
msgstr "Innlegg"
|
1931 |
+
|
1932 |
+
#: views/admin_post_list.php:22
|
1933 |
+
msgid "Pages"
|
1934 |
+
msgstr "Sider"
|
1935 |
+
|
1936 |
+
#: views/admin_post_list.php:23
|
1937 |
+
msgid "Custom Posts"
|
1938 |
+
msgstr "Tilpassede innlegg"
|
1939 |
+
|
1940 |
+
#: views/admin_tools_settings.php:14
|
1941 |
+
msgid "The required pages have been re-created."
|
1942 |
+
msgstr "De nødvendige sidene er blitt opprettet på nytt."
|
1943 |
+
|
1944 |
+
#: views/admin_tools_settings.php:21
|
1945 |
msgid "Generate a Registration Completion link"
|
1946 |
msgstr "Generer en link for fullføring av registrering"
|
1947 |
|
1948 |
+
#: views/admin_tools_settings.php:24
|
1949 |
+
msgid "You can manually generate a registration completion link here and give it to your customer if they have missed the email that was automatically sent out to them after the payment."
|
1950 |
+
msgstr "Du kan generere en link for fullføring av registrering manuelt her og gi den til kunden din hvis de har gått glipp av e-postmeldingen som automatisk ble sendt ut til dem etter betalingen."
|
|
|
|
|
|
|
|
|
|
|
|
|
1951 |
|
1952 |
+
#: views/admin_tools_settings.php:29
|
1953 |
msgid "Generate Registration Completion Link"
|
1954 |
+
msgstr "Generer link for fullføring av registrering"
|
1955 |
+
|
1956 |
+
#: views/admin_tools_settings.php:30
|
1957 |
+
msgid "For a Particular Member ID"
|
1958 |
+
msgstr "For en spesiell medlems-ID"
|
1959 |
|
1960 |
+
#: views/admin_tools_settings.php:32
|
1961 |
msgid "OR"
|
1962 |
msgstr "ELLER"
|
1963 |
|
1964 |
+
#: views/admin_tools_settings.php:33
|
1965 |
+
msgid "For All Incomplete Registrations"
|
1966 |
+
msgstr "For alle ufullstendige registreringer"
|
1967 |
|
1968 |
+
#: views/admin_tools_settings.php:38
|
1969 |
+
msgid "Send Registration Reminder Email Too"
|
1970 |
+
msgstr "Send påminnelse om påmelding også"
|
1971 |
|
1972 |
+
#: views/admin_tools_settings.php:44
|
|
|
|
|
|
|
|
|
1973 |
msgid "Submit"
|
1974 |
+
msgstr "Sende inn"
|
1975 |
|
1976 |
+
#: views/admin_tools_settings.php:53
|
1977 |
+
msgid "Link(s) generated successfully. The following link(s) can be used to complete the registration."
|
1978 |
+
msgstr "Kobling (er) generert vellykket. Følgende lenke (r) kan brukes til å fullføre registreringen."
|
1979 |
|
1980 |
+
#: views/admin_tools_settings.php:55
|
1981 |
+
msgid "Registration completion links will appear below"
|
1982 |
+
msgstr "Linker for fullføring av registrering vises nedenfor"
|
1983 |
+
|
1984 |
+
#: views/admin_tools_settings.php:65
|
1985 |
+
msgid "A prompt to complete registration email was also sent."
|
1986 |
+
msgstr "En melding om å fullføre registrerings-e-posten ble også sendt."
|
1987 |
+
|
1988 |
+
#: views/admin_tools_settings.php:78 views/admin_tools_settings.php:88
|
1989 |
+
msgid "Re-create the Required Pages"
|
1990 |
+
msgstr "Lag de påkrevde sidene på nytt"
|
1991 |
+
|
1992 |
+
#: views/admin_tools_settings.php:81
|
1993 |
+
msgid "If you have accidentally deleted the required pages that this plugin creates at install time, you can use this option to re-create them."
|
1994 |
+
msgstr "Hvis du ved et uhell har slettet de nødvendige sidene som denne pluginen oppretter på installasjonstidspunktet, kan du bruke dette alternativet til å opprette dem på nytt."
|
1995 |
+
|
1996 |
+
#: views/admin_tools_settings.php:82
|
1997 |
+
msgid " has full explanation."
|
1998 |
+
msgstr " har full forklaring."
|
1999 |
|
2000 |
+
#: views/edit.php:32 views/edit.php:36
|
2001 |
+
msgid "Leave empty to keep the current password"
|
2002 |
+
msgstr "La være tomt for å beholde det gjeldende passordet"
|
2003 |
+
|
2004 |
+
#: views/edit.php:71
|
2005 |
+
msgid "Company Name"
|
2006 |
+
msgstr "Selskapsnavn"
|
2007 |
+
|
2008 |
+
#: views/forgot_password.php:12
|
2009 |
msgid "Reset Password"
|
2010 |
+
msgstr "Tilbakestille passord"
|
2011 |
|
2012 |
+
#: views/loggedin.php:6
|
2013 |
msgid "Logged in as"
|
2014 |
+
msgstr "Logget inn som"
|
2015 |
|
2016 |
+
#: views/loggedin.php:14
|
2017 |
msgid "Membership"
|
2018 |
msgstr "Medlemskap"
|
2019 |
|
2020 |
+
#: views/loggedin.php:18
|
2021 |
msgid "Account Expiry"
|
2022 |
+
msgstr "Konto utløp"
|
2023 |
|
2024 |
+
#: views/loggedin.php:26
|
2025 |
+
msgid "Edit Profile"
|
2026 |
+
msgstr "Rediger profil"
|
2027 |
|
2028 |
+
#: views/login.php:11
|
2029 |
+
msgid "Username or Email"
|
2030 |
+
msgstr "Brukernavn eller e-post"
|
2031 |
+
|
2032 |
+
#: views/login.php:24
|
2033 |
msgid "Remember Me"
|
2034 |
msgstr "Husk meg"
|
2035 |
|
2036 |
+
#: views/login.php:33
|
2037 |
+
msgid "Forgot Password?"
|
2038 |
+
msgstr "Glemt passord?"
|
2039 |
+
|
2040 |
+
#: views/payments/admin_all_payment_transactions.php:6
|
2041 |
+
msgid "All the payments/transactions of your members are recorded here."
|
2042 |
+
msgstr "Alle betalingene / transaksjonene til medlemmene dine blir registrert her."
|
2043 |
+
|
2044 |
+
#: views/payments/admin_all_payment_transactions.php:12
|
2045 |
+
msgid "Search for a transaction by using email or name"
|
2046 |
+
msgstr "Søk etter en transaksjon ved å bruke e-post eller navn"
|
2047 |
+
|
2048 |
+
#: views/payments/admin_create_payment_buttons.php:15
|
2049 |
+
msgid "You can create new payment button for your memberships using this interface."
|
2050 |
+
msgstr "Du kan opprette en ny betalingsknapp for medlemskapene dine ved hjelp av dette grensesnittet."
|
2051 |
+
|
2052 |
+
#: views/payments/admin_create_payment_buttons.php:23
|
2053 |
+
msgid "Select Payment Button Type"
|
2054 |
+
msgstr "Velg betalingsknapptype"
|
2055 |
+
|
2056 |
+
#: views/payments/admin_create_payment_buttons.php:26
|
2057 |
+
msgid "PayPal Buy Now"
|
2058 |
+
msgstr "PayPal kjøp nå"
|
2059 |
+
|
2060 |
+
#: views/payments/admin_create_payment_buttons.php:28
|
2061 |
+
msgid "PayPal Subscription"
|
2062 |
+
msgstr "PayPal-abonnement"
|
2063 |
+
|
2064 |
+
#: views/payments/admin_create_payment_buttons.php:30
|
2065 |
+
msgid "PayPal Smart Checkout"
|
2066 |
+
msgstr "PayPal Smart Checkout"
|
2067 |
+
|
2068 |
+
#: views/payments/admin_create_payment_buttons.php:32
|
2069 |
+
msgid "Stripe Buy Now"
|
2070 |
+
msgstr "Stripe Kjøp nå"
|
2071 |
+
|
2072 |
+
#: views/payments/admin_create_payment_buttons.php:34
|
2073 |
+
msgid "Stripe Subscription"
|
2074 |
+
msgstr "Stripe-abonnement"
|
2075 |
+
|
2076 |
+
#: views/payments/admin_create_payment_buttons.php:36
|
2077 |
+
msgid "Braintree Buy Now"
|
2078 |
+
msgstr "Braintree Kjøp nå"
|
2079 |
+
|
2080 |
+
#: views/payments/admin_create_payment_buttons.php:43
|
2081 |
+
msgid "Next"
|
2082 |
+
msgstr "Neste"
|
2083 |
+
|
2084 |
+
#: views/payments/admin_edit_payment_buttons.php:15
|
2085 |
+
msgid "You can edit a payment button using this interface."
|
2086 |
+
msgstr "Du kan redigere en betalingsknapp ved hjelp av dette grensesnittet."
|
2087 |
+
|
2088 |
+
#: views/payments/admin_payment_buttons.php:6
|
2089 |
+
msgid "All the membership buttons that you created in the plugin are displayed here."
|
2090 |
+
msgstr "Her vises alle medlemsknappene du opprettet i pluginen."
|
2091 |
+
|
2092 |
+
#: views/payments/admin_payment_settings.php:21
|
2093 |
+
msgid "Error! The membership level ID ("
|
2094 |
+
msgstr "Feil! ID-medlemskap på nivå ("
|
2095 |
+
|
2096 |
+
#: views/payments/admin_payment_settings.php:28
|
2097 |
+
msgid "You can create membership payment buttons from the payments menu of this plugin (useful if you want to offer paid membership on the site)."
|
2098 |
+
msgstr "Du kan opprette betalingsknapper for medlemskap fra betalingsmenyen til denne pluginen (nyttig hvis du vil tilby betalt medlemskap på nettstedet)."
|
2099 |
+
|
2100 |
+
#: views/payments/admin_payment_settings.php:33
|
2101 |
+
msgid "PayPal Integration Settings"
|
2102 |
+
msgstr "PayPal-integrasjonsinnstillinger"
|
2103 |
+
|
2104 |
+
#: views/payments/admin_payment_settings.php:36
|
2105 |
+
msgid "Generate the \"Advanced Variables\" Code for your PayPal button"
|
2106 |
+
msgstr "Generer koden \"Avanserte variabler\" for PayPal-knappen"
|
2107 |
+
|
2108 |
+
#: views/payments/admin_payment_settings.php:39
|
2109 |
+
msgid "Enter the Membership Level ID"
|
2110 |
+
msgstr "Angi ID-medlemskap"
|
2111 |
+
|
2112 |
+
#: views/payments/admin_payment_settings.php:41
|
2113 |
+
msgid "Generate Code"
|
2114 |
+
msgstr "Generer kode"
|
2115 |
+
|
2116 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:22
|
2117 |
+
msgid "Braintree Buy Now Button Configuration"
|
2118 |
+
msgstr "Braintree Kjøp nå-knappkonfigurasjon"
|
2119 |
+
|
2120 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:34
|
2121 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:213
|
2122 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:33
|
2123 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:301
|
2124 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:259
|
2125 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:83
|
2126 |
+
msgid "Button ID"
|
2127 |
+
msgstr "Knapp-ID"
|
2128 |
+
|
2129 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:42
|
2130 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:26
|
2131 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:221
|
2132 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:41
|
2133 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:27
|
2134 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:309
|
2135 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:39
|
2136 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:266
|
2137 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:91
|
2138 |
+
msgid "Button Title"
|
2139 |
+
msgstr "Knapptittel"
|
2140 |
+
|
2141 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:60
|
2142 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:44
|
2143 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:239
|
2144 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:59
|
2145 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:57
|
2146 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:282
|
2147 |
+
msgid "Payment Amount"
|
2148 |
+
msgstr "Betalings beløp"
|
2149 |
+
|
2150 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:68
|
2151 |
+
msgid "Braintree API key and account details. You can get this from your Braintree account."
|
2152 |
+
msgstr "Braintree API nøkkel- og kontodetaljer. Du kan få dette fra Braintree-kontoen din."
|
2153 |
+
|
2154 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:72
|
2155 |
+
msgid "Merchant ID"
|
2156 |
+
msgstr "Kjøpmann ID"
|
2157 |
+
|
2158 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:80
|
2159 |
+
msgid "Public Key"
|
2160 |
+
msgstr "Offentlig nøkkel"
|
2161 |
+
|
2162 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:87
|
2163 |
+
msgid "Private Key"
|
2164 |
+
msgstr "Privat nøkkel"
|
2165 |
+
|
2166 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:95
|
2167 |
+
msgid "Merchant Account ID"
|
2168 |
+
msgstr "Merchant Account ID"
|
2169 |
+
|
2170 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:113
|
2171 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:137
|
2172 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:361
|
2173 |
+
msgid "The following details are optional."
|
2174 |
+
msgstr "Følgende detaljer er valgfrie."
|
2175 |
+
|
2176 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:117
|
2177 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:92
|
2178 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:287
|
2179 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:204
|
2180 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:172
|
2181 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:456
|
2182 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:149
|
2183 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:373
|
2184 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:191
|
2185 |
+
msgid "Return URL"
|
2186 |
+
msgstr "Returner URL"
|
2187 |
+
|
2188 |
+
#: views/payments/payment-gateway/admin_braintree_buy_now_button.php:127
|
2189 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:126
|
2190 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:321
|
2191 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:214
|
2192 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:200
|
2193 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:484
|
2194 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:159
|
2195 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:383
|
2196 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:212
|
2197 |
+
msgid "Save Payment Data"
|
2198 |
+
msgstr "Lagre betalingsdata"
|
2199 |
+
|
2200 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:16
|
2201 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:204
|
2202 |
+
msgid "PayPal Buy Now Button Configuration"
|
2203 |
+
msgstr "PayPal Kjøp nå-knappkonfigurasjon"
|
2204 |
+
|
2205 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:52
|
2206 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:247
|
2207 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:67
|
2208 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:45
|
2209 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:327
|
2210 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:65
|
2211 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:289
|
2212 |
+
msgid "Payment Currency"
|
2213 |
+
msgstr "Betalingsvaluta"
|
2214 |
+
|
2215 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:100
|
2216 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:295
|
2217 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:85
|
2218 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:367
|
2219 |
+
msgid "PayPal Email"
|
2220 |
+
msgstr "PayPal e-post"
|
2221 |
+
|
2222 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:108
|
2223 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:303
|
2224 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:180
|
2225 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:464
|
2226 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:199
|
2227 |
+
msgid "Button Image URL"
|
2228 |
+
msgstr "URL for knappebilde"
|
2229 |
+
|
2230 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:116
|
2231 |
+
#: views/payments/payment-gateway/admin_paypal_buy_now_button.php:311
|
2232 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:188
|
2233 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:472
|
2234 |
+
msgid "Custom Checkout Page Logo Image"
|
2235 |
+
msgstr "Egendefinert kassesideslogobilde"
|
2236 |
+
|
2237 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:21
|
2238 |
+
msgid "PayPal Smart Checkout Button Configuration"
|
2239 |
+
msgstr "PayPal Smart Checkout-knappkonfigurasjon"
|
2240 |
+
|
2241 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:107
|
2242 |
+
msgid "PayPal Smart Checkout API Credentials (you can get this from your PayPal account)"
|
2243 |
+
msgstr "PayPal Smart Checkout API-legitimasjon (du kan få dette fra PayPal-kontoen din)"
|
2244 |
+
|
2245 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:111
|
2246 |
+
msgid "Live Client ID"
|
2247 |
+
msgstr "Live Client ID"
|
2248 |
+
|
2249 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:119
|
2250 |
+
msgid "Live Secret"
|
2251 |
+
msgstr "Live Secret"
|
2252 |
+
|
2253 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:127
|
2254 |
+
msgid "Sandbox Client ID"
|
2255 |
+
msgstr "Sandbox Client ID"
|
2256 |
+
|
2257 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:135
|
2258 |
+
msgid "Sandbox Secret"
|
2259 |
+
msgstr "Sandbox Secret"
|
2260 |
+
|
2261 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:143
|
2262 |
+
msgid "Button Appearance Settings"
|
2263 |
+
msgstr "Innstillinger for knapputseende"
|
2264 |
+
|
2265 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:147
|
2266 |
+
msgid "Size"
|
2267 |
+
msgstr "Størrelse"
|
2268 |
+
|
2269 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:150
|
2270 |
+
msgid "Medium"
|
2271 |
+
msgstr "Medium"
|
2272 |
+
|
2273 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:151
|
2274 |
+
msgid "Large"
|
2275 |
+
msgstr "Stor"
|
2276 |
+
|
2277 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:152
|
2278 |
+
msgid "Repsonsive"
|
2279 |
+
msgstr "Repsonsive"
|
2280 |
+
|
2281 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:154
|
2282 |
+
msgid "Select button size."
|
2283 |
+
msgstr "Velg knappestørrelse."
|
2284 |
+
|
2285 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:158
|
2286 |
+
msgid "Color"
|
2287 |
+
msgstr "Farge"
|
2288 |
+
|
2289 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:161
|
2290 |
+
msgid "Gold"
|
2291 |
+
msgstr "Gull"
|
2292 |
+
|
2293 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:162
|
2294 |
+
msgid "Blue"
|
2295 |
+
msgstr "Blå"
|
2296 |
+
|
2297 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:163
|
2298 |
+
msgid "Silver"
|
2299 |
+
msgstr "Sølv"
|
2300 |
+
|
2301 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:164
|
2302 |
+
msgid "Black"
|
2303 |
+
msgstr "Svart"
|
2304 |
+
|
2305 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:166
|
2306 |
+
msgid "Select button color."
|
2307 |
+
msgstr "Velg knappefarge."
|
2308 |
+
|
2309 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:170
|
2310 |
+
msgid "Shape"
|
2311 |
+
msgstr "Form"
|
2312 |
+
|
2313 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:172
|
2314 |
+
msgid "Rectangular"
|
2315 |
+
msgstr "Rektangulære"
|
2316 |
+
|
2317 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:173
|
2318 |
+
msgid "Pill"
|
2319 |
+
msgstr "Pille"
|
2320 |
+
|
2321 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:174
|
2322 |
+
msgid "Select button shape."
|
2323 |
+
msgstr "Velg knappeform."
|
2324 |
+
|
2325 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:178
|
2326 |
+
msgid "Layout"
|
2327 |
+
msgstr "Oppsett"
|
2328 |
+
|
2329 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:180
|
2330 |
+
msgid "Vertical"
|
2331 |
+
msgstr "Vertikal"
|
2332 |
+
|
2333 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:181
|
2334 |
+
msgid "Horizontal"
|
2335 |
+
msgstr "Horisontal"
|
2336 |
+
|
2337 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:182
|
2338 |
+
msgid "Select button layout."
|
2339 |
+
msgstr "Velg knappoppsett."
|
2340 |
+
|
2341 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:187
|
2342 |
+
msgid "Additional Settings"
|
2343 |
+
msgstr "Tilleggsinnstillinger"
|
2344 |
+
|
2345 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:191
|
2346 |
+
msgid "Payment Methods"
|
2347 |
+
msgstr "Betalingsmetoder"
|
2348 |
+
|
2349 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:193
|
2350 |
+
msgid "PayPal Credit"
|
2351 |
+
msgstr "PayPal-kreditt"
|
2352 |
+
|
2353 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:194
|
2354 |
+
msgid "ELV"
|
2355 |
+
msgstr "ELV"
|
2356 |
+
|
2357 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:195
|
2358 |
+
msgid "Select payment methods that could be used by customers. Note that payment with cards is always enabled."
|
2359 |
+
msgstr "Velg betalingsmetoder som kan brukes av kunder. Merk at betaling med kort alltid er aktivert."
|
2360 |
+
|
2361 |
+
#: views/payments/payment-gateway/admin_paypal_smart_checkout_button.php:200
|
2362 |
+
msgid "The following details are optional"
|
2363 |
+
msgstr "Følgende detaljer er valgfrie"
|
2364 |
+
|
2365 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:18
|
2366 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:295
|
2367 |
+
msgid "PayPal Subscription Button Configuration"
|
2368 |
+
msgstr "PayPal-abonnementsknappkonfigurasjon"
|
2369 |
+
|
2370 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:93
|
2371 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:375
|
2372 |
+
msgid "Billing Amount Each Cycle"
|
2373 |
+
msgstr "Faktureringsbeløp hver syklus"
|
2374 |
+
|
2375 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:101
|
2376 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:383
|
2377 |
+
msgid "Billing Cycle"
|
2378 |
+
msgstr "Faktureringssyklus"
|
2379 |
+
|
2380 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:114
|
2381 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:396
|
2382 |
+
msgid "Billing Cycle Count"
|
2383 |
+
msgstr "Faktureringssyklus-telling"
|
2384 |
+
|
2385 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:122
|
2386 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:404
|
2387 |
+
msgid "Re-attempt on Failure"
|
2388 |
+
msgstr "Forsøk på nytt på mislykkethet"
|
2389 |
+
|
2390 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:135
|
2391 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:419
|
2392 |
+
msgid "Trial Billing Details (Leave empty if you are not offering a trial period)"
|
2393 |
+
msgstr "Prøvefaktureringsdetaljer (legg tom hvis du ikke tilbyr prøveperiode)"
|
2394 |
+
|
2395 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:141
|
2396 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:425
|
2397 |
+
msgid "Trial Billing Amount"
|
2398 |
+
msgstr "Prøvefaktureringsbeløp"
|
2399 |
+
|
2400 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:149
|
2401 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:433
|
2402 |
+
msgid "Trial Billing Period"
|
2403 |
+
msgstr "Prøvefaktureringsperiode"
|
2404 |
+
|
2405 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:166
|
2406 |
+
#: views/payments/payment-gateway/admin_paypal_subscription_button.php:450
|
2407 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:177
|
2408 |
+
msgid "Optional Details"
|
2409 |
+
msgstr "Valgfrie detaljer"
|
2410 |
+
|
2411 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:29
|
2412 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:250
|
2413 |
+
msgid "Stripe Buy Now Button Configuration"
|
2414 |
+
msgstr "Stripe Buy Now-knappkonfigurasjon"
|
2415 |
+
|
2416 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:104
|
2417 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:328
|
2418 |
+
msgid "Stripe API keys. You can get this from your Stripe account."
|
2419 |
+
msgstr "Stripe API-nøkler. Du kan få dette fra Stripe-kontoen din."
|
2420 |
+
|
2421 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:108
|
2422 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:332
|
2423 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:131
|
2424 |
+
msgid "Test Publishable Key"
|
2425 |
+
msgstr "Test publiserbar nøkkel"
|
2426 |
+
|
2427 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:115
|
2428 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:339
|
2429 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:139
|
2430 |
+
msgid "Test Secret Key"
|
2431 |
+
msgstr "Test hemmelig nøkkel"
|
2432 |
+
|
2433 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:122
|
2434 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:346
|
2435 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:147
|
2436 |
+
msgid "Live Publishable Key"
|
2437 |
+
msgstr "Live publiserbar nøkkel"
|
2438 |
+
|
2439 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:129
|
2440 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:353
|
2441 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:155
|
2442 |
+
msgid "Live Secret Key"
|
2443 |
+
msgstr "Live Secret Key"
|
2444 |
+
|
2445 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:141
|
2446 |
+
#: views/payments/payment-gateway/admin_stripe_buy_now_button.php:365
|
2447 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:183
|
2448 |
+
msgid "Collect Customer Address"
|
2449 |
+
msgstr "Samle kundeadresse"
|
2450 |
+
|
2451 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:75
|
2452 |
+
msgid "Stripe Subscription Button Configuration"
|
2453 |
+
msgstr "Stripe-abonnementsknappkonfigurasjon"
|
2454 |
+
|
2455 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:109
|
2456 |
+
msgid "Stripe Plan ID"
|
2457 |
+
msgstr "Stripe-ID"
|
2458 |
+
|
2459 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:125
|
2460 |
+
msgid "Stripe API Settings"
|
2461 |
+
msgstr "Stripe API-innstillinger"
|
2462 |
+
|
2463 |
+
#: views/payments/payment-gateway/admin_stripe_subscription_button.php:163
|
2464 |
+
msgid "Webook Endpoint URL"
|
2465 |
+
msgstr "Webook Endpoint URL"
|
2466 |
+
|
2467 |
+
#: views/payments/payment-gateway/braintree_button_shortcode_view.php:20
|
2468 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:91
|
2469 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:93
|
2470 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:15
|
2471 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:20
|
2472 |
+
#: views/payments/payment-gateway/stripe_button_shortcode_view.php:150
|
2473 |
+
msgid "Buy Now"
|
2474 |
+
msgstr "Kjøp nå"
|
2475 |
+
|
2476 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:226
|
2477 |
+
#: views/payments/payment-gateway/paypal_button_shortcode_view.php:228
|
2478 |
+
msgid "Subscribe Now"
|
2479 |
+
msgstr "Abonner nå"
|
2480 |
+
|
2481 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:137
|
2482 |
+
msgid "Error occured during PayPal Smart Checkout process."
|
2483 |
+
msgstr "Det oppsto en feil under PayPal Smart Checkout-prosessen."
|
2484 |
+
|
2485 |
+
#: views/payments/payment-gateway/paypal_smart_checkout_button_shortcode_view.php:165
|
2486 |
+
msgid "HTTP error occured during payment process:"
|
2487 |
+
msgstr "HTTP-feil oppstod under betalingsprosessen:"
|
2488 |
+
|
2489 |
+
#: Translation strings from addons === Form builder addon
|
2490 |
+
msgid "Type password here"
|
2491 |
+
msgstr "Skriv inn passord her"
|
2492 |
+
|
2493 |
+
msgid "Retype password here"
|
2494 |
+
msgstr "Skriv passordet på nytt her"
|
2495 |
+
|
2496 |
+
msgid "Registration is complete. You can now log into the site."
|
2497 |
+
msgstr "Registreringen er fullført. Du kan nå logge inn på siden."
|
2498 |
+
|
2499 |
+
msgid " Field has invalid character"
|
2500 |
+
msgstr " Feltet har ugyldig karakter"
|
2501 |
+
|
2502 |
+
msgid " Password does not match"
|
2503 |
+
msgstr " Passordet stemmer ikke"
|
2504 |
+
|
2505 |
+
msgid "Already taken."
|
2506 |
+
msgstr "Allerede tatt."
|
2507 |
+
|
2508 |
+
msgid "Street Address"
|
2509 |
+
msgstr "Gateadresse"
|
2510 |
+
|
2511 |
+
msgid "Apt, Suite, Bldg. (optional)"
|
2512 |
+
msgstr "Apt, Suite, Bldg. (valgfri)"
|
2513 |
+
|
2514 |
+
msgid "State / Province / Region"
|
2515 |
+
msgstr "Stat / provins / region"
|
2516 |
+
|
2517 |
+
msgid "Postal / Zip Code"
|
2518 |
+
msgstr "Postnummer"
|
2519 |
+
|
2520 |
+
msgid "Check this box to delete the image. The image will be deleted when you save the profile."
|
2521 |
+
msgstr "Merk av i denne ruten for å slette bildet. Bildet blir slettet når du lagrer profilen."
|
2522 |
+
|
2523 |
+
msgid "You will need to re-login since you changed your password."
|
2524 |
+
msgstr "Du må logge inn på nytt siden du endret passord."
|
2525 |
+
|
2526 |
+
msgid "Please enter any two digits with <strong>no</strong> spaces (Example: 12)"
|
2527 |
+
msgstr "Skriv inn to sifre med <strong> ingen </strong> mellomrom (eksempel: 12)"
|
2528 |
+
|
2529 |
+
msgid "Verification"
|
2530 |
+
msgstr "Bekreftelse"
|
2531 |
+
|
2532 |
+
msgid "Please enter any two digits with no spaces (Example: 12)*"
|
2533 |
+
msgstr "Skriv inn to sifre uten mellomrom (eksempel: 12) *"
|
2534 |
+
|
2535 |
+
msgid "Username can only contain: letters, numbers and .-*@"
|
2536 |
+
msgstr "Brukernavn kan bare inneholde: bokstaver, tall og .- * @"
|
2537 |
+
|
2538 |
+
msgid "Allowed characters are: letters, numbers and .-_*@"
|
2539 |
+
msgstr "Tillatte tegn er: bokstaver, tall og.-_ * @"
|
2540 |
+
|
2541 |
+
#: === Partial protection addon strings
|
2542 |
+
msgid "You do not have permission to view this content."
|
2543 |
+
msgstr "Du har ikke tillatelse til å se dette innholdet."
|
2544 |
+
|
2545 |
+
msgid "Your membership level does not have permission to view this content."
|
2546 |
+
msgstr "Ditt medlemsnivå har ikke tillatelse til å se dette innholdet."
|
2547 |
+
|
2548 |
+
msgid "This content is for members only."
|
2549 |
+
msgstr "Dette innholdet er kun for medlemmer."
|
2550 |
+
|
2551 |
+
msgid "Please check at least one."
|
2552 |
+
msgstr "Kontroller minst en."
|
2553 |
+
|
2554 |
+
#: === Member Directory Listing addon strings swpm-member-directory-admin.php:9
|
2555 |
+
msgid "Member Directory"
|
2556 |
+
msgstr "Medlemskatalog"
|
2557 |
+
|
2558 |
+
#: includes/swpm_mda_show_profile.php:26
|
2559 |
+
msgid "Member ID"
|
2560 |
+
msgstr "Medlems-ID"
|
2561 |
+
|
2562 |
+
#: includes/swpm_mda_show_profile.php:30
|
2563 |
+
msgid "Level"
|
2564 |
+
msgstr "Nivå"
|
2565 |
+
|
2566 |
+
#: includes/swpm_mda_show_profile.php:32
|
2567 |
+
msgid "Address"
|
2568 |
+
msgstr "Adresse"
|
2569 |
+
|
2570 |
+
#: views/template-1.php:52 views/template-2.php:53
|
2571 |
+
msgid "Search..."
|
2572 |
+
msgstr "Søk..."
|
2573 |
+
|
2574 |
+
#: views/template-1.php:60 views/template-2.php:62
|
2575 |
+
msgid "Clear Search"
|
2576 |
+
msgstr "Tøm søk"
|
2577 |
+
|
2578 |
+
#. === Misc Shortcodes Addon ===
|
2579 |
+
msgid "You must be logged in to upgrade a membership."
|
2580 |
+
msgstr "Du må være logget inn for å oppgradere et medlemskap."
|
2581 |
+
|
2582 |
+
msgid "Membership level has been updated."
|
2583 |
+
msgstr "Medlemskapsnivået er oppdatert."
|
2584 |
+
|
2585 |
+
msgid "Already a member of this level."
|
2586 |
+
msgstr "Allerede medlem av dette nivået."
|
languages/simple-membership.pot
CHANGED
@@ -2283,6 +2283,10 @@ msgstr ""
|
|
2283 |
msgid "Edit Profile"
|
2284 |
msgstr ""
|
2285 |
|
|
|
|
|
|
|
|
|
2286 |
#: views/login.php:26
|
2287 |
msgid "Remember Me"
|
2288 |
msgstr ""
|
2283 |
msgid "Edit Profile"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
+
#: views/login.php:7
|
2287 |
+
msgid "Username or Email"
|
2288 |
+
msgstr ""
|
2289 |
+
|
2290 |
#: views/login.php:26
|
2291 |
msgid "Remember Me"
|
2292 |
msgstr ""
|
log-auth.txt
DELETED
File without changes
|
log.txt
DELETED
File without changes
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Donate link: https://simple-membership-plugin.com/
|
|
4 |
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe, braintree
|
5 |
Requires at least: 5.0
|
6 |
Requires PHP: 5.6
|
7 |
-
Tested up to: 5.
|
8 |
-
Stable tag: 4.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -159,6 +159,28 @@ https://simple-membership-plugin.com/
|
|
159 |
|
160 |
== Changelog ==
|
161 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
= 4.0.7 =
|
163 |
- Stripe sca subscriptions enhancement: restore the custom field value from the original webhook notification (when available).
|
164 |
- Custom fields data (if available) is also saved in the swpm_transactions custom post type after a transaction.
|
4 |
Tags: member, members, members only, membership, memberships, register, WordPress membership plugin, content, content protection, paypal, restrict, restrict access, Restrict content, admin, access control, subscription, teaser, protection, profile, login, login page, bbpress, stripe, braintree
|
5 |
Requires at least: 5.0
|
6 |
Requires PHP: 5.6
|
7 |
+
Tested up to: 5.9
|
8 |
+
Stable tag: 4.1.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
159 |
|
160 |
== Changelog ==
|
161 |
|
162 |
+
= 4.1.0 =
|
163 |
+
- Added the text 'Username or Email' to the language translation POT file.
|
164 |
+
- Added a new action hook (swpm_front_end_registration_form_submitted) for when the front-end registration form is submitted
|
165 |
+
- Added nonce check for the "Delete Transaction" action in the payments menu.
|
166 |
+
|
167 |
+
= 4.0.9 =
|
168 |
+
- Added do_blocks() to the more tag protection feature's content formatting to improve compatibility with the link preview plugin. Thanks to @brechtvds for providing the code adjustment.
|
169 |
+
- Added a new filter for the more tag protection feature (swpm_format_raw_content_for_front_end_display).
|
170 |
+
- Added a new filter for the login form action message output (swpm_login_form_action_msg).
|
171 |
+
- Added a new filter for the "Hide Registration Form to Logged Users" feature. It will allow additional content to be added below the message.
|
172 |
+
- Added a new filter for the user delete action.
|
173 |
+
- Updated the Norwegian language file.
|
174 |
+
- Added nonce check to the bulk delete feature of the members menu.
|
175 |
+
|
176 |
+
= 4.0.8 =
|
177 |
+
- Added a new utility function in the plugin to retrieve wp user roles by ID.
|
178 |
+
- Added French (Canadian) language translation file to the plugin. Thank you to Ariane Larivière.
|
179 |
+
- Added a check to prevent an extra empty line output with a notice/message.
|
180 |
+
- Updated the HTML ID value for the privacy policy checkbox item.
|
181 |
+
- The debug log file names are uniquely generated on per install.
|
182 |
+
- Added nonce check to the debug log file reset action.
|
183 |
+
|
184 |
= 4.0.7 =
|
185 |
- Stripe sca subscriptions enhancement: restore the custom field value from the original webhook notification (when available).
|
186 |
- Custom fields data (if available) is also saved in the swpm_transactions custom post type after a transaction.
|
simple-wp-membership.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Simple WordPress Membership
|
4 |
-
Version: 4.0
|
5 |
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Author: smp7, wp.insider
|
7 |
Author URI: https://simple-membership-plugin.com/
|
@@ -12,45 +12,45 @@ Requires PHP: 5.6
|
|
12 |
*/
|
13 |
|
14 |
//Direct access to this file is not permitted
|
15 |
-
if (!defined('ABSPATH')){
|
16 |
-
|
17 |
}
|
18 |
|
19 |
-
include_once('classes/class.simple-wp-membership.php');
|
20 |
-
include_once('classes/class.swpm-cronjob.php');
|
21 |
-
include_once('swpm-compat.php');
|
22 |
-
|
23 |
-
define('SIMPLE_WP_MEMBERSHIP_VER', '4.0
|
24 |
-
define('SIMPLE_WP_MEMBERSHIP_DB_VER', '1.3');
|
25 |
-
define('SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url());
|
26 |
-
define('SIMPLE_WP_MEMBERSHIP_PATH', dirname(__FILE__) . '/');
|
27 |
-
define('SIMPLE_WP_MEMBERSHIP_URL', plugins_url('', __FILE__));
|
28 |
-
define('SIMPLE_WP_MEMBERSHIP_DIRNAME', dirname(plugin_basename(__FILE__)));
|
29 |
-
define('SIMPLE_WP_MEMBERSHIP_TEMPLATE_PATH', 'simple-membership');
|
30 |
-
if (!defined('COOKIEHASH')) {
|
31 |
-
|
32 |
}
|
33 |
-
define('SIMPLE_WP_MEMBERSHIP_AUTH', 'simple_wp_membership_' . COOKIEHASH);
|
34 |
-
define('SIMPLE_WP_MEMBERSHIP_SEC_AUTH', 'simple_wp_membership_sec_' . COOKIEHASH);
|
35 |
-
define('SIMPLE_WP_MEMBERSHIP_STRIPE_ZERO_CENTS',serialize(array('JPY', 'MGA', 'VND', 'KRW')));
|
36 |
|
37 |
SwpmUtils::do_misc_initial_plugin_setup_tasks();
|
38 |
|
39 |
-
register_activation_hook(SIMPLE_WP_MEMBERSHIP_PATH . 'simple-wp-membership.php', 'SimpleWpMembership::activate');
|
40 |
-
register_deactivation_hook(SIMPLE_WP_MEMBERSHIP_PATH . 'simple-wp-membership.php', 'SimpleWpMembership::deactivate');
|
41 |
|
42 |
-
add_action('swpm_login', 'SimpleWpMembership::swpm_login', 10, 3);
|
43 |
|
44 |
-
$simple_membership
|
45 |
$simple_membership_cron = new SwpmCronJob();
|
46 |
|
47 |
//Add settings link in plugins listing page
|
48 |
-
function swpm_add_settings_link($links, $file) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
}
|
55 |
|
56 |
-
add_filter('plugin_action_links', 'swpm_add_settings_link', 10, 2);
|
1 |
<?php
|
2 |
/*
|
3 |
Plugin Name: Simple WordPress Membership
|
4 |
+
Version: 4.1.0
|
5 |
Plugin URI: https://simple-membership-plugin.com/
|
6 |
Author: smp7, wp.insider
|
7 |
Author URI: https://simple-membership-plugin.com/
|
12 |
*/
|
13 |
|
14 |
//Direct access to this file is not permitted
|
15 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
16 |
+
exit( 'Do not access this file directly.' );
|
17 |
}
|
18 |
|
19 |
+
include_once( 'classes/class.simple-wp-membership.php' );
|
20 |
+
include_once( 'classes/class.swpm-cronjob.php' );
|
21 |
+
include_once( 'swpm-compat.php' );
|
22 |
+
|
23 |
+
define( 'SIMPLE_WP_MEMBERSHIP_VER', '4.1.0' );
|
24 |
+
define( 'SIMPLE_WP_MEMBERSHIP_DB_VER', '1.3' );
|
25 |
+
define( 'SIMPLE_WP_MEMBERSHIP_SITE_HOME_URL', home_url() );
|
26 |
+
define( 'SIMPLE_WP_MEMBERSHIP_PATH', dirname( __FILE__ ) . '/' );
|
27 |
+
define( 'SIMPLE_WP_MEMBERSHIP_URL', plugins_url( '', __FILE__ ) );
|
28 |
+
define( 'SIMPLE_WP_MEMBERSHIP_DIRNAME', dirname( plugin_basename( __FILE__ ) ) );
|
29 |
+
define( 'SIMPLE_WP_MEMBERSHIP_TEMPLATE_PATH', 'simple-membership' );
|
30 |
+
if ( ! defined( 'COOKIEHASH' ) ) {
|
31 |
+
define( 'COOKIEHASH', md5( get_site_option( 'siteurl' ) ) );
|
32 |
}
|
33 |
+
define( 'SIMPLE_WP_MEMBERSHIP_AUTH', 'simple_wp_membership_' . COOKIEHASH );
|
34 |
+
define( 'SIMPLE_WP_MEMBERSHIP_SEC_AUTH', 'simple_wp_membership_sec_' . COOKIEHASH );
|
35 |
+
define( 'SIMPLE_WP_MEMBERSHIP_STRIPE_ZERO_CENTS', serialize( array( 'JPY', 'MGA', 'VND', 'KRW' ) ) );
|
36 |
|
37 |
SwpmUtils::do_misc_initial_plugin_setup_tasks();
|
38 |
|
39 |
+
register_activation_hook( SIMPLE_WP_MEMBERSHIP_PATH . 'simple-wp-membership.php', 'SimpleWpMembership::activate' );
|
40 |
+
register_deactivation_hook( SIMPLE_WP_MEMBERSHIP_PATH . 'simple-wp-membership.php', 'SimpleWpMembership::deactivate' );
|
41 |
|
42 |
+
add_action( 'swpm_login', 'SimpleWpMembership::swpm_login', 10, 3 );
|
43 |
|
44 |
+
$simple_membership = new SimpleWpMembership();
|
45 |
$simple_membership_cron = new SwpmCronJob();
|
46 |
|
47 |
//Add settings link in plugins listing page
|
48 |
+
function swpm_add_settings_link( $links, $file ) {
|
49 |
+
if ( $file == plugin_basename( __FILE__ ) ) {
|
50 |
+
$settings_link = '<a href="admin.php?page=simple_wp_membership_settings">Settings</a>';
|
51 |
+
array_unshift( $links, $settings_link );
|
52 |
+
}
|
53 |
+
return $links;
|
54 |
}
|
55 |
|
56 |
+
add_filter( 'plugin_action_links', 'swpm_add_settings_link', 10, 2 );
|
views/add.php
CHANGED
@@ -77,7 +77,7 @@ $user_name = apply_filters('swpm_registration_form_set_username', $user_name);
|
|
77 |
?>
|
78 |
<tr>
|
79 |
<td colspan="2" style="text-align: center;">
|
80 |
-
<label><input type="checkbox" id="
|
81 |
</td>
|
82 |
</tr>
|
83 |
<?php
|
77 |
?>
|
78 |
<tr>
|
79 |
<td colspan="2" style="text-align: center;">
|
80 |
+
<label><input type="checkbox" id="accept_pp" name="accept_pp" class="validate[required]" value="1"> <?php echo SwpmUtils::_('I agree to the ') ?> <a href="<?php echo $pp_page_url; ?>" target="_blank"><?php echo SwpmUtils::_('Privacy Policy') ?></a></label>
|
81 |
</td>
|
82 |
</tr>
|
83 |
<?php
|
views/admin_members_list.php
CHANGED
@@ -1,70 +1,71 @@
|
|
1 |
-
<?php
|
2 |
-
//$this refers to class "SwpmMembers" in this context.
|
3 |
-
|
4 |
-
if (isset($_REQUEST['member_action']) && $_REQUEST['member_action'] == 'delete') {
|
5 |
-
//Delete this record
|
6 |
-
$this->delete();
|
7 |
-
$success_msg = '<div id="message" class="updated"><p>';
|
8 |
-
$success_msg .= SwpmUtils::_('The selected entry was deleted!');
|
9 |
-
$success_msg .= '</p></div>';
|
10 |
-
echo $success_msg;
|
11 |
-
}
|
12 |
-
|
13 |
-
$this->prepare_items();
|
14 |
-
$count = $this->get_user_count_by_account_state();
|
15 |
-
|
16 |
-
global $wpdb;
|
17 |
-
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
|
18 |
-
$levels = $wpdb->get_results($query, ARRAY_A);
|
19 |
-
|
20 |
-
$account_state = filter_input(INPUT_GET, 'status', FILTER_SANITIZE_STRING);
|
21 |
-
$membership_level = filter_input(INPUT_GET, 'membership_level', FILTER_SANITIZE_NUMBER_INT);
|
22 |
-
?>
|
23 |
-
<style>
|
24 |
-
select.swpm-admin-search-dropdown {
|
25 |
-
vertical-align: inherit;
|
26 |
-
}
|
27 |
-
input.button.swpm-admin-search-btn {
|
28 |
-
vertical-align: top;
|
29 |
-
}
|
30 |
-
</style>
|
31 |
-
<ul class="subsubsub">
|
32 |
-
<li class="all"><a href="admin.php?page=simple_wp_membership" <?php echo $status == "" ? "class='current'" : ""; ?> ><?php echo SwpmUtils::_('All') ?> <span class="count">(<?php echo $count['all']; ?>)</span></a> |</li>
|
33 |
-
<li class="active"><a href="admin.php?page=simple_wp_membership&status=active" <?php echo $status == "active" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Active') ?> <span class="count">(<?php echo isset($count['active']) ? $count['active'] : 0 ?>)</span></a> |</li>
|
34 |
-
<li class="active"><a href="admin.php?page=simple_wp_membership&status=inactive" <?php echo $status == "inactive" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Inactive') ?> <span class="count">(<?php echo isset($count['inactive']) ? $count['inactive'] : 0 ?>)</span></a> |</li>
|
35 |
-
<li class="pending"><a href="admin.php?page=simple_wp_membership&status=activation_required" <?php echo $status == "activation_required" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Activation Required') ?> <span class="count">(<?php echo isset($count['activation_required']) ? $count['activation_required'] : 0 ?>)</span></a> |</li>
|
36 |
-
<li class="pending"><a href="admin.php?page=simple_wp_membership&status=pending" <?php echo $status == "pending" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Pending') ?> <span class="count">(<?php echo isset($count['pending']) ? $count['pending'] : 0 ?>)</span></a> |</li>
|
37 |
-
<li class="incomplete"><a href="admin.php?page=simple_wp_membership&status=incomplete" <?php echo $status == "incomplete" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Incomplete') ?> <span class="count">(<?php echo isset($count['incomplete']) ? $count['incomplete'] : 0 ?>)</span></a> |</li>
|
38 |
-
<li class="expired"><a href="admin.php?page=simple_wp_membership&status=expired" <?php echo $status == "expired" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Expired') ?> <span class="count">(<?php echo isset($count['expired']) ? $count['expired'] : 0 ?>)</span></a></li>
|
39 |
-
</ul>
|
40 |
-
|
41 |
-
<br />
|
42 |
-
<form method="get">
|
43 |
-
<p class="search-box">
|
44 |
-
<select name="status" class="swpm-admin-search-dropdown" id="account_state">
|
45 |
-
<option value=""<?php echo empty($account_state) ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Account State'); ?></option>
|
46 |
-
<?php echo SwpmUtils::account_state_dropdown($account_state); ?>
|
47 |
-
<option value="incomplete"<?php echo $account_state === "incomplete" ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Incomplete'); ?></option>
|
48 |
-
</select>
|
49 |
-
<select name="membership_level" class="swpm-admin-search-dropdown" id="membership_level">
|
50 |
-
<option value=""<?php echo empty($membership_level) ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Membership Level'); ?></option>
|
51 |
-
<?php foreach ($levels as $level): ?>
|
52 |
-
<option <?php echo ($level['id'] == $membership_level) ? "selected='selected'" : ""; ?> value="<?php echo $level['id']; ?>"> <?php echo $level['alias'] ?></option>
|
53 |
-
<?php endforeach; ?>
|
54 |
-
</select>
|
55 |
-
<input id="search_id-search-input" type="text" name="s" value="<?php echo isset($_REQUEST['s']) ? esc_attr($_REQUEST['s']) : ''; ?>" />
|
56 |
-
<input id="search-submit" class="button swpm-admin-search-btn" type="submit" name="" value="<?php echo SwpmUtils::_('Search') ?>" />
|
57 |
-
<input type="hidden" name="page" value="simple_wp_membership" />
|
58 |
-
</p>
|
59 |
-
</form>
|
60 |
-
|
61 |
-
<form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
|
62 |
-
<!-- For plugins, we also need to ensure that the form posts back to our current page -->
|
63 |
-
<input type="hidden" name="page" value="<?php echo esc_attr($_REQUEST['page']); ?>" />
|
64 |
-
<!-- Now we can render the completed list table -->
|
65 |
-
<?php $this->display(); ?>
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
70 |
</p>
|
1 |
+
<?php
|
2 |
+
//$this refers to class "SwpmMembers" in this context.
|
3 |
+
|
4 |
+
if (isset($_REQUEST['member_action']) && $_REQUEST['member_action'] == 'delete') {
|
5 |
+
//Delete this record
|
6 |
+
$this->delete();
|
7 |
+
$success_msg = '<div id="message" class="updated"><p>';
|
8 |
+
$success_msg .= SwpmUtils::_('The selected entry was deleted!');
|
9 |
+
$success_msg .= '</p></div>';
|
10 |
+
echo $success_msg;
|
11 |
+
}
|
12 |
+
|
13 |
+
$this->prepare_items();
|
14 |
+
$count = $this->get_user_count_by_account_state();
|
15 |
+
|
16 |
+
global $wpdb;
|
17 |
+
$query = "SELECT * FROM " . $wpdb->prefix . "swpm_membership_tbl WHERE id !=1 ";
|
18 |
+
$levels = $wpdb->get_results($query, ARRAY_A);
|
19 |
+
|
20 |
+
$account_state = filter_input(INPUT_GET, 'status', FILTER_SANITIZE_STRING);
|
21 |
+
$membership_level = filter_input(INPUT_GET, 'membership_level', FILTER_SANITIZE_NUMBER_INT);
|
22 |
+
?>
|
23 |
+
<style>
|
24 |
+
select.swpm-admin-search-dropdown {
|
25 |
+
vertical-align: inherit;
|
26 |
+
}
|
27 |
+
input.button.swpm-admin-search-btn {
|
28 |
+
vertical-align: top;
|
29 |
+
}
|
30 |
+
</style>
|
31 |
+
<ul class="subsubsub">
|
32 |
+
<li class="all"><a href="admin.php?page=simple_wp_membership" <?php echo $status == "" ? "class='current'" : ""; ?> ><?php echo SwpmUtils::_('All') ?> <span class="count">(<?php echo $count['all']; ?>)</span></a> |</li>
|
33 |
+
<li class="active"><a href="admin.php?page=simple_wp_membership&status=active" <?php echo $status == "active" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Active') ?> <span class="count">(<?php echo isset($count['active']) ? $count['active'] : 0 ?>)</span></a> |</li>
|
34 |
+
<li class="active"><a href="admin.php?page=simple_wp_membership&status=inactive" <?php echo $status == "inactive" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Inactive') ?> <span class="count">(<?php echo isset($count['inactive']) ? $count['inactive'] : 0 ?>)</span></a> |</li>
|
35 |
+
<li class="pending"><a href="admin.php?page=simple_wp_membership&status=activation_required" <?php echo $status == "activation_required" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Activation Required') ?> <span class="count">(<?php echo isset($count['activation_required']) ? $count['activation_required'] : 0 ?>)</span></a> |</li>
|
36 |
+
<li class="pending"><a href="admin.php?page=simple_wp_membership&status=pending" <?php echo $status == "pending" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Pending') ?> <span class="count">(<?php echo isset($count['pending']) ? $count['pending'] : 0 ?>)</span></a> |</li>
|
37 |
+
<li class="incomplete"><a href="admin.php?page=simple_wp_membership&status=incomplete" <?php echo $status == "incomplete" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Incomplete') ?> <span class="count">(<?php echo isset($count['incomplete']) ? $count['incomplete'] : 0 ?>)</span></a> |</li>
|
38 |
+
<li class="expired"><a href="admin.php?page=simple_wp_membership&status=expired" <?php echo $status == "expired" ? "class='current'" : ""; ?>><?php echo SwpmUtils::_('Expired') ?> <span class="count">(<?php echo isset($count['expired']) ? $count['expired'] : 0 ?>)</span></a></li>
|
39 |
+
</ul>
|
40 |
+
|
41 |
+
<br />
|
42 |
+
<form method="get">
|
43 |
+
<p class="search-box">
|
44 |
+
<select name="status" class="swpm-admin-search-dropdown" id="account_state">
|
45 |
+
<option value=""<?php echo empty($account_state) ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Account State'); ?></option>
|
46 |
+
<?php echo SwpmUtils::account_state_dropdown($account_state); ?>
|
47 |
+
<option value="incomplete"<?php echo $account_state === "incomplete" ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Incomplete'); ?></option>
|
48 |
+
</select>
|
49 |
+
<select name="membership_level" class="swpm-admin-search-dropdown" id="membership_level">
|
50 |
+
<option value=""<?php echo empty($membership_level) ? ' selected' : ''; ?>> <?php echo SwpmUtils::_('Membership Level'); ?></option>
|
51 |
+
<?php foreach ($levels as $level): ?>
|
52 |
+
<option <?php echo ($level['id'] == $membership_level) ? "selected='selected'" : ""; ?> value="<?php echo $level['id']; ?>"> <?php echo $level['alias'] ?></option>
|
53 |
+
<?php endforeach; ?>
|
54 |
+
</select>
|
55 |
+
<input id="search_id-search-input" type="text" name="s" value="<?php echo isset($_REQUEST['s']) ? esc_attr($_REQUEST['s']) : ''; ?>" />
|
56 |
+
<input id="search-submit" class="button swpm-admin-search-btn" type="submit" name="" value="<?php echo SwpmUtils::_('Search') ?>" />
|
57 |
+
<input type="hidden" name="page" value="simple_wp_membership" />
|
58 |
+
</p>
|
59 |
+
</form>
|
60 |
+
|
61 |
+
<form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
|
62 |
+
<!-- For plugins, we also need to ensure that the form posts back to our current page -->
|
63 |
+
<input type="hidden" name="page" value="<?php echo esc_attr($_REQUEST['page']); ?>" />
|
64 |
+
<!-- Now we can render the completed list table -->
|
65 |
+
<?php $this->display(); ?>
|
66 |
+
<?php wp_nonce_field( 'swpm_bulk_action', 'swpm_bulk_action_nonce' ); ?>
|
67 |
+
</form>
|
68 |
+
|
69 |
+
<p>
|
70 |
+
<a href="admin.php?page=simple_wp_membership&member_action=add" class="button-primary"><?php echo SwpmUtils::_('Add New') ?></a>
|
71 |
</p>
|
views/login.php
CHANGED
@@ -3,8 +3,9 @@ $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 |
-
// Filter
|
7 |
-
$
|
|
|
8 |
?>
|
9 |
<div class="swpm-login-widget-form">
|
10 |
<form id="swpm-login-form" name="swpm-login-form" method="post" action="">
|
@@ -25,9 +26,9 @@ $swpm_username_label = apply_filters('swpm_login_form_set_username_label', 'User
|
|
25 |
<span class="swpm-remember-checkbox"><input type="checkbox" name="rememberme" value="checked='checked'"></span>
|
26 |
<span class="swpm-rember-label"> <?php echo SwpmUtils::_('Remember Me') ?></span>
|
27 |
</div>
|
28 |
-
|
29 |
<div class="swpm-before-login-submit-section"><?php echo apply_filters('swpm_before_login_form_submit_button', ''); ?></div>
|
30 |
-
|
31 |
<div class="swpm-login-submit">
|
32 |
<input type="submit" class="swpm-login-form-submit" name="swpm-login" value="<?php echo SwpmUtils::_('Login') ?>"/>
|
33 |
</div>
|
@@ -38,7 +39,7 @@ $swpm_username_label = apply_filters('swpm_login_form_set_username_label', 'User
|
|
38 |
<a id="register" class="swpm-login-form-register-link" href="<?php echo $join_url; ?>"><?php echo SwpmUtils::_('Join Us') ?></a>
|
39 |
</div>
|
40 |
<div class="swpm-login-action-msg">
|
41 |
-
<span class="swpm-login-widget-action-msg"><?php echo $auth->get_message(); ?></span>
|
42 |
</div>
|
43 |
</div>
|
44 |
</form>
|
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 |
+
// Filter that allows changing of the default value of the username label on login form.
|
7 |
+
$label_username_or_email = __( 'Username or Email', 'simple-membership' );
|
8 |
+
$swpm_username_label = apply_filters('swpm_login_form_set_username_label', $label_username_or_email);
|
9 |
?>
|
10 |
<div class="swpm-login-widget-form">
|
11 |
<form id="swpm-login-form" name="swpm-login-form" method="post" action="">
|
26 |
<span class="swpm-remember-checkbox"><input type="checkbox" name="rememberme" value="checked='checked'"></span>
|
27 |
<span class="swpm-rember-label"> <?php echo SwpmUtils::_('Remember Me') ?></span>
|
28 |
</div>
|
29 |
+
|
30 |
<div class="swpm-before-login-submit-section"><?php echo apply_filters('swpm_before_login_form_submit_button', ''); ?></div>
|
31 |
+
|
32 |
<div class="swpm-login-submit">
|
33 |
<input type="submit" class="swpm-login-form-submit" name="swpm-login" value="<?php echo SwpmUtils::_('Login') ?>"/>
|
34 |
</div>
|
39 |
<a id="register" class="swpm-login-form-register-link" href="<?php echo $join_url; ?>"><?php echo SwpmUtils::_('Join Us') ?></a>
|
40 |
</div>
|
41 |
<div class="swpm-login-action-msg">
|
42 |
+
<span class="swpm-login-widget-action-msg"><?php echo apply_filters( 'swpm_login_form_action_msg', $auth->get_message() ); ?></span>
|
43 |
</div>
|
44 |
</div>
|
45 |
</form>
|
views/payments/admin_all_payment_transactions.php
CHANGED
@@ -27,6 +27,7 @@ if (isset($_REQUEST['action'])) { //Do list table form row action tasks
|
|
27 |
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_txn') { //Delete link was clicked for a row in list table
|
28 |
$record_id = sanitize_text_field($_REQUEST['id']);
|
29 |
$record_id = absint($record_id);
|
|
|
30 |
$payments_list_table->delete_record($record_id);
|
31 |
$success_msg = '<div id="message" class="updated"><p><strong>';
|
32 |
$success_msg .= SwpmUtils::_('The selected entry was deleted!');
|
27 |
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'delete_txn') { //Delete link was clicked for a row in list table
|
28 |
$record_id = sanitize_text_field($_REQUEST['id']);
|
29 |
$record_id = absint($record_id);
|
30 |
+
check_admin_referer('swpm_delete_txn_'.$record_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!');
|