diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..a8358f0f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "includes/vendor/rocketgeek-utilities"] + path = includes/vendor/rocketgeek-utilities + url = https://github.com/rocketgeek/rocketgeek-utilities.git diff --git a/admin/admin.php b/admin/admin.php deleted file mode 100644 index 1aa48ec4..00000000 --- a/admin/admin.php +++ /dev/null @@ -1,290 +0,0 @@ -' . __( 'Settings', 'wp-members' ) . ''; - $links = array_merge( array( $settings_link ), $links ); - } - return $links; -} - - -/** - * Loads the admin javascript and css files. - * - * @since 2.5.1 - * - * @uses wp_enqueue_script - * @uses wp_enqueue_style - */ -function wpmem_load_admin_js() { - // Queue up admin ajax and styles. - wp_enqueue_script( 'wpmem-admin-js', WPMEM_DIR . 'js/admin.js', '', WPMEM_VERSION ); - wp_enqueue_style ( 'wpmem-admin-css', WPMEM_DIR . 'css/admin.css', '', WPMEM_VERSION ); -} - - -/** - * Creates the captcha tab. - * - * @since 2.8 - * - * @param string $tab - * @return - */ -function wpmem_a_captcha_tab( $tab ) { - include_once( WPMEM_PATH . 'admin/tab-captcha.php' ); - return ( $tab == 'captcha' ) ? wpmem_a_build_captcha_options() : false ; -} - - -/** - * Adds the captcha tab. - * - * @since 2.8 - * - * @param array $tabs The array of tabs for the admin panel. - * @return array The updated array of tabs for the admin panel. - */ -function wpmem_add_captcha_tab( $tabs ) { - return array_merge( $tabs, array( 'captcha' => 'Captcha' ) ); -} - - -/** - * Primary admin function. - * - * @since 2.1 - */ -function wpmem_admin() { - - $did_update = ( isset( $_POST['wpmem_admin_a'] ) ) ? wpmem_admin_action( $_POST['wpmem_admin_a'] ) : false; - - global $wpmem; - - if ( $wpmem->captcha ) { - add_filter( 'wpmem_admin_tabs', 'wpmem_add_captcha_tab' ); - add_action( 'wpmem_admin_do_tab', 'wpmem_a_captcha_tab', 1, 1 ); - } ?> - -
' . $strong_msg . ' ' . $remain_msg . $span_msg . '
-
-
-
-
-
Find out how to get access to WP-Members private members forum, premium code snippets, tutorials, and add-on modules!
-
-
- ™!
- Chad Butler
- ButlerBlog: RSS | Twitter
- Copyright © 2006-
- Premium support and installation service available at rocketgeek.com.
-
' . $_REQUEST['n'] . ' ' . $post_type . ' ' . $action . '
- labels->name, $notice_text ); - echo ' '; - printf( 'Edit', $admin_url ); - ?> -
-- - ID, $meta, true ), '1' ); ?> /> - - ID, $meta, true ), '0' ); ?> /> - - -
- block[ $post_type ] == 1 ) ? __( 'Unblocked?', 'wp-members' ) : __( 'Blocked?', 'wp-members' ); - } - return $columns; -} - - -/** - * Adds blocking status to the Post Table column. - * - * @since 2.8.3 - * - * @param $column_name - * @param $post_ID - */ -function wpmem_post_columns_content( $column_name, $post_ID ) { - - global $wpmem; - $post_type = ( isset( $_REQUEST['post_type'] ) ) ? $_REQUEST['post_type'] : 'post'; - - if ( $column_name == 'wpmem_block' ) { - - $block_meta = get_post_meta( $post_ID, '_wpmem_block', true ); - - // Backward compatibility for old block/unblock meta. - if ( ! $block_meta ) { - // Check for old meta. - $old_block = get_post_meta( $post_ID, 'block', true ); - $old_unblock = get_post_meta( $post_ID, 'unblock', true ); - $block_meta = ( $old_block ) ? 1 : ( ( $old_unblock ) ? 0 : $block_meta ); - } - - echo ( $wpmem->block[ $post_type ] == 1 && $block_meta == '0' ) ? __( 'Yes' ) : ''; - echo ( $wpmem->block[ $post_type ] == 0 && $block_meta == '1' ) ? __( 'Yes' ) : ''; - } -} - - -/** - * Adds shortcode dropdown to post editor tinymce. - * - * @since 3.0 - */ -function wpmem_load_tinymce() { - // @todo For now, only load if WP version is high enough. - if ( version_compare( get_bloginfo( 'version' ), '3.9', '>=' ) ) { - global $wpmem_shortcode; - include( WPMEM_PATH . 'inc/class-wp-members-tinymce-buttons.php' ); - $wpmem_shortcode = new WP_Members_TinyMCE_Buttons; - } -} - -// End of File. \ No newline at end of file +', '' ), 'wp-members' ); - ?> - - $_POST['wpmem_captcha_publickey'], - 'private' => $_POST['wpmem_captcha_privatekey'], - ); - if ( $update_type == 'recaptcha' && isset( $_POST['wpmem_captcha_theme'] ) ) { - $new_settings['recaptcha']['theme'] = $_POST['wpmem_captcha_theme']; - } - } - - if ( $update_type == 'really_simple' ) { - if ( array_key_exists( 'recaptcha', $settings ) ) { - // Updating really_simple but need to maintain recaptcha. - $new_settings['recaptcha'] = $settings['recaptcha']; - } - $font_color = $_POST['font_color_r'] . ',' . $_POST['font_color_g'] . ',' . $_POST['font_color_b']; - $bg_color = $_POST['bg_color_r'] . ',' . $_POST['bg_color_g'] . ',' . $_POST['bg_color_b']; - $new_settings['really_simple'] = array( - 'characters' => $_POST['characters'], - 'num_char' => $_POST['num_char'], - 'dim_w' => $_POST['dim_w'], - 'dim_h' => $_POST['dim_h'], - 'font_color' => $font_color, - 'bg_color' => $bg_color, - 'font_size' => $_POST['font_size'], - 'kerning' => $_POST['kerning'], - 'img_type' => $_POST['img_type'], - ); - } - - update_option( 'wpmembers_captcha', $new_settings ); - return __( 'CAPTCHA was updated for WP-Members', 'wp-members' ); -} - -/** End of File **/ \ No newline at end of file diff --git a/admin/tab-dialogs.php b/admin/tab-dialogs.php deleted file mode 100644 index b7fc8150..00000000 --- a/admin/tab-dialogs.php +++ /dev/null @@ -1,122 +0,0 @@ - - - mod_reg == 0 ) { - $wpmem_email_title_arr = array( - array( __( "New Registration", 'wp-members' ), 'wpmembers_email_newreg' ), - ); - } else { - $wpmem_email_title_arr = array( - array( __( "Registration is Moderated", 'wp-members' ), 'wpmembers_email_newmod' ), - array( __( "Registration is Moderated, User is Approved", 'wp-members' ), 'wpmembers_email_appmod' ), - ); - } - array_push( - $wpmem_email_title_arr, - array( __( "Password Reset", 'wp-members' ), 'wpmembers_email_repass' ) - ); - if ( $wpmem->notify == 1 ) { - array_push( - $wpmem_email_title_arr, - array( __( "Admin Notification", 'wp-members' ), 'wpmembers_email_notify' ) - ); - } - array_push( - $wpmem_email_title_arr, - array( __( "Email Signature", 'wp-members' ), 'wpmembers_email_footer' ) - ); ?> - - mod_reg == 0 ) ? $arr = array( 'wpmembers_email_newreg' ) : $arr = array( 'wpmembers_email_newmod', 'wpmembers_email_appmod' ); - array_push( $arr, 'wpmembers_email_repass' ); - ( $wpmem->notify == 1 ) ? array_push( $arr, 'wpmembers_email_notify' ) : false; - array_push( $arr, 'wpmembers_email_footer' ); - - for ( $row = 0; $row < ( count( $arr ) - 1 ); $row++ ) { - $arr2 = array( - "subj" => $_POST[$arr[$row] . '_subj'], - "body" => $_POST[$arr[$row] . '_body'], - ); - update_option( $arr[$row], $arr2, false ); - $arr2 = ''; - } - - // Updated the email footer. - update_option( $arr[$row], $_POST[$arr[$row] . '_body'], false ); - - return __( 'WP-Members emails were updated', 'wp-members' ); - -} - -/** End of File **/ \ No newline at end of file diff --git a/admin/tab-fields.php b/admin/tab-fields.php deleted file mode 100644 index 4a59e0da..00000000 --- a/admin/tab-fields.php +++ /dev/null @@ -1,570 +0,0 @@ - - - 0 ) { - $key = $new_order[$row]; - $key = substr( $key, 15 ); - - for ( $x = 0; $x < count( $wpmem_old_fields ); $x++ ) { - - if ( $wpmem_old_fields[$x][0] == $key ) { - $wpmem_new_fields[$row - 1] = $wpmem_old_fields[$x]; - } - } - } - } - - update_option( 'wpmembers_fields', $wpmem_new_fields ); - - die(); // This is required to return a proper result. - -} - - -/** - * Updates fields. - * - * @since 2.8 - * - * @param string $action The field update action (update_fields|add|edit) - * @global string $add_field_err_msg The add field error message - * @return string $did_update The fields update message - * - * @todo apply some additional form validation to the add/update process - */ -function wpmem_update_fields( $action ) { - - // Get the current fields. - $wpmem_fields = get_option( 'wpmembers_fields' ); - $wpmem_ut_fields = get_option( 'wpmembers_utfields' ); - - if ( $action == 'update_fields' ) { - - // Check nonce. - check_admin_referer( 'wpmem-update-fields' ); - - // @todo - need some additional form validation here - - // Update user table fields. - $arr = ( isset( $_POST['ut_fields'] ) ) ? $_POST['ut_fields'] : ''; - update_option( 'wpmembers_utfields', $arr ); - - // Rebuild the array, don't touch user_email - it's always mandatory. - $nrow = 0; - for ( $row = 0; $row < count( $wpmem_fields ); $row++ ) { - - // Check to see if the field is checked for deletion, and if not, add it to the new array. - $delete_field = "del_" . $wpmem_fields[$row][2]; - $delete_field = ( isset( $_POST[$delete_field] ) ) ? $_POST[$delete_field] : false; - if ( $delete_field != "delete" ) { - - for ( $i = 0; $i < 4; $i++ ) { - $wpmem_newfields[$nrow][$i] = $wpmem_fields[$row][$i]; - } - - $wpmem_newfields[$nrow][0] = $nrow + 1; - - $display_field = $wpmem_fields[$row][2] . "_display"; - $require_field = $wpmem_fields[$row][2] . "_required"; - $checked_field = $wpmem_fields[$row][2] . "_checked"; - - if ( $wpmem_fields[$row][2] != 'user_email' ){ - $wpmem_newfields[$nrow][4] = ( isset( $_POST[$display_field] ) ) ? $_POST[$display_field] : ''; - $wpmem_newfields[$nrow][5] = ( isset( $_POST[$require_field] ) ) ? $_POST[$require_field] : ''; - } else { - $wpmem_newfields[$nrow][4] = 'y'; - $wpmem_newfields[$nrow][5] = 'y'; - } - - // @todo Does $chkreq get used anywhere? - // if ( $wpmem_newfields[$nrow][4] != 'y' && $wpmem_newfields[$nrow][5] == 'y' ) { $chkreq = "err"; } - // @todo Changed above to this: - $chkreq = ( $wpmem_newfields[$nrow][4] != 'y' && $wpmem_newfields[$nrow][5] == 'y' ) ? 'err' : false; - - $wpmem_newfields[$nrow][6] = $wpmem_fields[$row][6]; - $wpmem_newfields[$nrow][7] = ( isset( $wpmem_fields[$row][7] ) ) ? $wpmem_fields[$row][7] : ''; - if ( $wpmem_fields[$row][3] == 'checkbox' ) { - if ( isset( $_POST[$checked_field] ) && $_POST[$checked_field] == 'y' ) { - $wpmem_newfields[$nrow][8] = 'y'; - } else { - $wpmem_newfields[$nrow][8] = 'n'; - } - } - - $nrow = $nrow + 1; - } - - } - - update_option( 'wpmembers_fields', $wpmem_newfields ); - $did_update = __( 'WP-Members fields were updated', 'wp-members' ); - - } elseif ( $action == 'add_field' || 'edit_field' ) { - - // Check nonce. - check_admin_referer( 'wpmem-add-fields' ); - - global $add_field_err_msg; - - $add_field_err_msg = false; - - // Error check that field label and option name are included and unique. - $add_field_err_msg = ( $_POST['add_name'] == '' ) ? __( 'Field Label is required for adding a new field. Nothing was updated.', 'wp-members' ) : $add_field_err_msg; - $add_field_err_msg = ( $_POST['add_option'] == '' ) ? __( 'Option Name is required for adding a new field. Nothing was updated.', 'wp-members' ) : $add_field_err_msg; - - $add_field_err_msg = ( !preg_match("/^[A-Za-z0-9_]*$/", $_POST['add_option'] ) ) ? __( 'Option Name must contain only letters, numbers, and underscores', 'wp-members' ) : $add_field_err_msg; - - // Check for duplicate field names. - $chk_fields = array(); - foreach ( $wpmem_fields as $field ) { - $chk_fields[] = $field[2]; - } - $add_field_err_msg = ( in_array( $_POST['add_option'], $chk_fields ) ) ? __( 'A field with that option name already exists', 'wp-members' ) : $add_field_err_msg; - - // Error check for reserved terms. - $reserved_terms = wpmem_wp_reserved_terms(); - $submitted_term = $_POST['add_option']; - if ( in_array( strtolower( $submitted_term ), $reserved_terms ) ) { - $add_field_err_msg = sprintf( __( 'Sorry, "%s" is a reserved term. Field was not added.', 'wp-members' ), $submitted_term ); - } - - // Error check option name for spaces and replace with underscores. - $us_option = $_POST['add_option']; - $us_option = preg_replace( "/ /", '_', $us_option ); - - $arr = array(); - - $arr[0] = ( $action == 'add_field' ) ? ( count( $wpmem_fields ) ) + 2 : false; - $arr[1] = stripslashes( $_POST['add_name'] ); - $arr[2] = $us_option; - $arr[3] = $_POST['add_type']; - $arr[4] = ( isset( $_POST['add_display'] ) ) ? $_POST['add_display'] : 'n'; - $arr[5] = ( isset( $_POST['add_required'] ) ) ? $_POST['add_required'] : 'n'; - $arr[6] = ( $us_option == 'user_nicename' || $us_option == 'display_name' || $us_option == 'nickname' ) ? 'y' : 'n'; - - if ( $_POST['add_type'] == 'checkbox' ) { - $add_field_err_msg = ( ! $_POST['add_checked_value'] ) ? __( 'Checked value is required for checkboxes. Nothing was updated.', 'wp-members' ) : $add_field_err_msg; - $arr[7] = ( isset( $_POST['add_checked_value'] ) ) ? $_POST['add_checked_value'] : false; - $arr[8] = ( isset( $_POST['add_checked_default'] ) ) ? $_POST['add_checked_default'] : 'n'; - } - - if ( $_POST['add_type'] == 'select' ) { - // Get the values. - $str = stripslashes( $_POST['add_dropdown_value'] ); - // Remove linebreaks. - $str = trim( str_replace( array("\r", "\r\n", "\n"), '', $str ) ); - // Create array. - if ( ! function_exists( 'str_getcsv' ) ) { - $arr[7] = explode( ',', $str ); - } else { - $arr[7] = str_getcsv( $str, ',', '"' ); - } - } - - if ( $_POST['add_type'] == 'file' ) { - $arr[7] = stripslashes( $_POST['add_file_value'] ); - } - - if ( $action == 'add_field' ) { - if ( ! $add_field_err_msg ) { - array_push( $wpmem_fields, $arr ); - update_option( 'wpmembers_fields', $wpmem_fields ); - $did_update = $_POST['add_name'] . ' ' . __( 'field was added', 'wp-members' ); - } else { - $did_update = $add_field_err_msg; - } - } else { - - for ( $row = 0; $row < count( $wpmem_fields ); $row++ ) { - if ( $wpmem_fields[$row][2] == $_GET['edit'] ) { - $arr[0] = $wpmem_fields[$row][0]; - $x = ( $arr[3] == 'checkbox' ) ? 8 : ( ( $arr[3] == 'select' || $arr[3] == 'file' ) ? 7 : 6 ); - for ( $r = 0; $r < $x+1; $r++ ) { - $wpmem_fields[$row][$r] = $arr[$r]; - } - } - } - - update_option( 'wpmembers_fields', $wpmem_fields ); - - $did_update = $_POST['add_name'] . ' ' . __( 'field was updated', 'wp-members' ); - - } - } - - if ( WPMEM_DEBUG == true && isset( $arr ) ) { echo ""; print_r($arr); echo ""; } - - return $did_update; -} - - -/** - * Function to write the field edit link. - * - * @since 2.8 - * - * @param string $field_id The option name of the field to be edited - */ -function wpmem_fields_edit_link( $field_id ) { - return '' . __( 'Edit' ) . ''; -} - - -/** - * Function to dispay the add/edit field form. - * - * @since 2.8 - * - * @param string $mode The mode for the function (edit|add) - * @param array|null $wpmem_fields the array of fields - * @param string|null $field the field being edited - */ -function wpmem_a_field_edit( $mode, $wpmem_fields = null, $field = null ) { - - if ( $mode == 'edit' ) { - for ( $row = 0; $row < count( $wpmem_fields ); $row++ ) { - if ( $wpmem_fields[$row][2] == $field ) { - $field_arr = $wpmem_fields[$row]; - } - } - } - - $form_action = ( $mode == 'edit' ) ? 'editfieldform' : 'addfieldform'; - -?> -
-
| - | '; - $val = htmlspecialchars( get_user_meta( $user_id, $meta[2], true ) ); - if ( $meta[3] == 'checkbox' || $meta[3] == 'select' ) { - $valtochk = $val; - $val = $meta[7]; - } - $show_field.= wpmem_create_formfield( $meta[2], $meta[3], $val, $valtochk ) . ' - | -
|---|---|
| - | - |
| - | - |
{$message}
{$user_action_msg}
Sample Content
'; + + + editor.addButton('wpmem_shortcodes_button', function() { + return { + title: "WP-Members Shortcodes", + tooltip: "WP-Members Shortcodes", + icon: "user", + type: 'menubutton', + icons: false, + menu: [ + { + text: 'WP-Members Shortcodes', + }, + { + text: 'Login Forms', + menu: [ + { + text: "basic login", + onclick: function(){ + editor.insertContent('[wpmem_form login]'); + } + }, + { + text: "login + redirect", + onclick: function(){ + editor.insertContent('[wpmem_form login redirect_to="https://mysite.com/my-page/"]'); + } + }, + { + text: "login + logged in content", + onclick: function(){ + editor.insertContent('[wpmem_form login]wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "Email Besked"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "Du kan tilpasse indholdet af emails sendt fra denne plugin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "liste med shortcodes kan ses her."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "Indsæt en gyldig Email-adresse"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(obligatorisk)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "Skriv dit email navn her"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "Email underskrift"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "Opdater Emails"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-Members emails er opdateret"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "(påkrævet)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Felt Etiket"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Felt Type"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "Tekst"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "Tekstfelt"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "Markeringsboks"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "Kodeord"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Vis?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Obligatorisk?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr "Markering?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "Valg skal skrives Valg Navn|valg_værdi,"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "Besøg Plugin Site for mere information"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+msgid "Registration Date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "IP @ registration"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Administrer Felter"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-Members felter er opdateret"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+"Felt-etikette er nødvendig for at tilføje et nyt felt. Intet er ændret."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Administrer Valgmuligheder"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr "Vis Uddrag"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Time-based expiration"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Allows for access to expire"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Prøveperiode"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Tillader en prøveperiode"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Underret Admin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Send email til %s for hver ny registrering? %s"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Rediger registrering"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Tilbageholder nye registreringer for godkendelse fra Admin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Ignorer advarsels-beskeder"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "Ignorerer WP-Members advarsels-beskeder i administrationspanelet"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+msgid "Register Page:"
+msgstr "Register Page:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+msgid "User Profile Page:"
+msgstr "Brugeren Profil Sider"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr "Custom Stylesheet:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Opdater Indstillinger"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-Member indstillinger er opdateret"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr "vælg en sider"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+msgid "Users Screen"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Fornavn"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Efternavn"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Adresse1"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Adresse2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "By"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Region"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Postnr"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Land"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Telefon"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "Email"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Website"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "Biographical Info"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Kodeord"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "VfD"
+
+#: includes/class-wp-members-dialogs.php:66
+msgid "You are not logged in."
+msgstr "Du er ikke logget ind."
+
+#: includes/class-wp-members-dialogs.php:72
+msgid "Existing Users Log In"
+msgstr "Logge Ind"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "Logge ind"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Glemt Kodeord?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Klik her for at nulstille"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Ny Bruger"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Klik her for at registrere"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Skift Kodeord"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Opdater Kodeord"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Nulstil glemt Kodeord"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Nulstil Kodeord"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+msgid "New User Registration"
+msgstr "Ny Bruger Registrering"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Vælg et Brugernavn"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+msgid "Reset Form"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Registrer"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Obligatorisk felt"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Rediger dine Oplysninger"
+
+#: includes/class-wp-members-dialogs.php:115
+msgid "Update Profile"
+msgstr "Opdater Profil"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Log på fejlede!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Du har skrevet forkert Brugernavn eller Kodeord."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Klik her for at fortsætte."
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "Kodeordsfelt må ikke være tomt"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "%s skal udfyldes, er et obligatorisk felt."
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Du skal indtaste en gyldig Email-adresse. "
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "Brugernavn må kun indeholde bogstaver."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Brugernavn skal udfyldes, er et obligatorisk felt"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+msgid "Passwords did not match."
+msgstr "Adgangskoder matcher ikke."
+
+#: includes/class-wp-members-dialogs.php:132
+msgid "Emails did not match."
+msgstr "Emails matchede ikke."
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "Du skal færdiggøre CAPTCHA skemaet."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+msgid "There was an error processing the form."
+msgstr "Der var en fejl under behandling formularen."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "Der opstod en fejl in CAPTCHA skemaet."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Dine Oplysninger er blevet opdateret!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Rediger mine info"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "Du er logget på som %s"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Begynd at bruge sitet"
+
+#: includes/class-wp-members-dialogs.php:147
+msgid "Click to log out"
+msgstr "Klik for at logge ud"
+
+#: includes/class-wp-members-dialogs.php:149
+msgid "click to log out"
+msgstr "klik for at logge ud"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "Klik her for at logge ud"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(valinnainen)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-Members sähköpostit on päivitetty"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "(rakollinen)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr "Lisätä Kentän"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Kentän otsikko"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Kentän tyyppi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "teksti"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "Tekstialue"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "rastitus"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "Salasana"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Näkyvissä?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Pakollinen?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr "Lisätä Kentän"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+msgid "Registration Date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "IP @ rekisteröinnissä"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Hallitse kenttiä"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-Members kentät on päivitetty"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+"Kentän otsikko vaaditaan uuden kentän lisäämiseksi. Mitään ei nyt "
+"päivitetty."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Hallitse optioita"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr "Näytä yhteenvedot"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Ajastettu vanhentuminen"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Sisäänpääsyn sallitaan vanhentua"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Koeaika"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Sallii koeajan käytön"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Ilmoita pääkäyttäjälle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Lähetä sähköposti %s jokaisen rekisteröitymisen yhteydessä? %s"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Moderoi rekisteröitymiset"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Pääkäyttäjän hyväksyntä vaaditaan"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Varoitukset jätetään huomioimatta"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "WP-Members hallintapaneelin varoitusten hylkääminen"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+msgid "Register Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+msgid "User Profile Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Päivitä asetukset"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-Members asetukset on päivitetty"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+msgid "Users Screen"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Etunimi"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Sukunimi"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Katuosoite"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Osoiterivi 2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Paikkakunta"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Maakunta/osavaltio"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Postinumero"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Maa"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Puhelin"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "sähköpostiosoite"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Omat nettisivusi"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "Kuvaus sinusta"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Salasana"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "Käyttöehdot"
+
+#: includes/class-wp-members-dialogs.php:66
+msgid "You are not logged in."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:72
+msgid "Existing Users Log In"
+msgstr "Kirjaudu sisään"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "Kirjaudu sisään"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Unohditko salasanasi?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Klikkaa tästä nollataksesi"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Uusi käyttäjä?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Klikkaa tästä rekisteröityäksesi"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Vaihda salasanaa"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Päivitä salasana"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Unohtuneen salasanan nollaus"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Nollaa salasana"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+msgid "New User Registration"
+msgstr "Uuden käyttäjän rekisteröinti"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Valitse käyttäjätunnus"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+msgid "Reset Form"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Rekisteröidy"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Pakollinen tieto"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Täytä omat tietosi"
+
+#: includes/class-wp-members-dialogs.php:115
+msgid "Update Profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Sisäänkirjautuminen epäonnistui!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Annoit väärän käyttäjätunnuksen tai salasanan."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Klikkaa tähän jatkaaksesi."
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "Salasanakentät eivät saa olla tyhjiä"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Valitettavasti %s on pakollinen tieto."
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Annoit väärän käyttäjätunnuksen tai salasanan. "
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "Käyttäjätunnus voi sisältää ainoastaan kirjaimia ja numeroita."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Käyttäjätunnus on pakollinen tieto."
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+msgid "Passwords did not match."
+msgstr "Salasanat eivät täsmää"
+
+#: includes/class-wp-members-dialogs.php:132
+msgid "Emails did not match."
+msgstr "Sähköpostit eivät täsmää"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "CAPTCHA lomake on täytettävä oikein."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+msgid "There was an error processing the form."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "CAPTCHA lomakkeessa oli virhe."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Tietosi on päivitetty!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Muuta omia tietojani"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "Olet kirjautunut sisään tunnuksella %s"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Aloita sivuston käyttö."
+
+#: includes/class-wp-members-dialogs.php:147
+msgid "Click to log out"
+msgstr "Ilmoittaa lähtevänsä"
+
+#: includes/class-wp-members-dialogs.php:149
+msgid "click to log out"
+msgstr "ilmoittaa lähtevänsä"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "Klikkaa tästä kirjautuaksesi ulos"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "הודעות אימייל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "אפשר לשנות את תוכן האימיילים הנשלחים על-ידי התוסף."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "להלן רשימת קיצורי הקוד הזמינים"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "הגדרת כתובת אימייל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(רשות)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "קביעת שם אימייל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "חתימת האימייל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "עדכון האימיילים"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "האימיילים של וורדפרס-חברים עודכנו"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "(חובה)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr "עריכת השדה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr "הוספת שדה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "תווית השדה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr "השם של השדה כפי שהוא יוצג בפני המשתמש."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+"ערך תיאור meta עבור השדה. הוא חייב להיות ייחודי, ללא רווחים (אפשר להשתמש "
+"במקפים תחתונים)."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "סוג השדה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "טקסט"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr "אימייל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "אזור טקסט"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "תיבת סימון"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr "תיבות סימון מרובות"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr "בחירה מרשימה נפתחת"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr "בחירה מרובה ברשימה נפתחת"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr "קבוצת לחצני רדיו"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "סיסמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr "תמונה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr "קובץ"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr "כתובת URL"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr "נסתר"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "להציג?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "חובה?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr "סוגי הקבצים המקובלים:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr "את סוגי הקבצים המקובלים יש להגדיר כך:jpg|jpeg|png|gif"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr "לסמן כברירת מחדל?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr "הערך המאוחסן אם מסומi:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "האפשרויות צריכות להיות שם אפשרות | option_value,"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "נא לבקר באתר התוסף למידע נוסף"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr "הוספת שדה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+msgid "Registration Date"
+msgstr "תאריך ההרשמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "כתובת ה IP בהרשמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "ניהול שדות"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "השדות של וורדפרס-חברים עודכנו"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+"מצטערים, %s הוא מונח שמור. השדה לא "
+"התווסף."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr "ערך מסומן הוא חובה עבור תיבות סימון. שום דבר לא עודכן."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "ניהול האפשרויות"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr "להציג תקצירים"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr "להציג טופס כניסה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr "להציג טופס הרשמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr "תקציר אוטומטי:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr "מספר המילים בתקציר:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "תפוגה מבוססת זמן"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "מאפשר לגישה לפוג"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "תקופת ניסיון"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "מאפשר תקופת ניסיון"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "להודיע למנהל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "להודיע ל %s מנהל על כל הרשמה חדשה? %s"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "בקרת הרשמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "עוצר הרשמת משתמשים חדשים עד לאישור מנהל"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "להתעלם מהודעות אזהרה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "להתעלם מהודעות אזהרה של וורדפרס-חברים בלוח הבקרה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr "ייחוס"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr "ייחוס תתקבל בברכה! להציג \"מופעל על ידי\" על הקישור בטופס ההרשמה?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr "עמוד כניסה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr "נא לציין עמוד כניסה (רשות)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+msgid "Register Page:"
+msgstr "עמוד ההרשמה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr "כדי ליצור קישור להרשמה בטופס הכניסה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+msgid "User Profile Page:"
+msgstr "עמוד פרופיל המשתמש:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr "כדי ליצור קישור לאיפוס סיסמה בטופס הכניסה"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr "גיליון עיצוב"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr "גיליון עיצוב מותאם אישית:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "עדכן ההגדרות"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr "סוגי פוסט"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr "הגדרות סוגי פוסט עודכנו"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "הגדרות וורדפרס-חברים עודכנו"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr "להשתמש בכתובת URL מותאמת אישית להלן"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr "בחירת עמוד"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+msgid "Users Screen"
+msgstr "מסך המשתמשים"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr "הזנת ערך קוד שגוי. נא נסה שוב."
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "שם"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "שם משפחה"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "כתובת"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "כתובת 2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "יישוב"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "מדינה"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "מיקוד"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "ארץ"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "טלפון"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "אימייל"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr "אישור האימייל"
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "אתר"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "מידע ביוגרפי"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "סיסמה"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr "אישור הסיסמה"
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "תנאי השימוש"
+
+#: includes/class-wp-members-dialogs.php:66
+msgid "You are not logged in."
+msgstr "עוד לא נכנסת."
+
+#: includes/class-wp-members-dialogs.php:72
+msgid "Existing Users Log In"
+msgstr "כניסת משתמשים רשומים"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "כניסה"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr "זכור אותי"
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "לאפס את הסיסמה?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "נא ללחוץ כאן כדי לאפס"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "משתמש חדש?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "נא ללחוץ כאן כדי להירשם"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "החלפת סיסמה"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr "סיסמה חדשה"
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr "אישור הסיסמה החדשה"
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "עדכון הסיסמה"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr "הסיסמה הוחלפה בהצלחה!"
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "איפוס סיסמה שנשכחה"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "איפוס סיסמה"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr "שכחת את שם המשתמש?"
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr "ללחוץ כאן"
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr "שחזור שם המשתמש"
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr "כתובת אימייל"
+
+#: includes/class-wp-members-dialogs.php:103
+msgid "New User Registration"
+msgstr "רישום משתמש חדש"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "בחירת שם משתמש"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr "להזין את הקוד:"
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+msgid "Reset Form"
+msgstr "איפוס הטופס"
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "הרשמה"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "שדה חובה"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "עריכת הפרטים שלך"
+
+#: includes/class-wp-members-dialogs.php:115
+msgid "Update Profile"
+msgstr "עדכון הפרופיל"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr "עדכון הקובץ הזה"
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "הכניסה נכשלה!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "הזנת שם משתמש או סיסמה שגויים."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "נא ללחוץ כאן כדי להמשיך"
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "שדות הסיסמה הם שדות חובה"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr "מצטערים, כתובת האימייל הזו איננה"
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr "אימייל עם שם המשתמש שלך נשלח ל %s"
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "מצטערים, %s הוא שדה חובה"
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "חובה להזין אימייל תקף"
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "שם המשתמש אינו יכול לכלול תווים שאינם אלפא-נומריים."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "מצטערים, שם המשתמש הוא שדה חובה"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+msgid "Passwords did not match."
+msgstr "הסיסמאות אינן תואמות"
+
+#: includes/class-wp-members-dialogs.php:132
+msgid "Emails did not match."
+msgstr "כתובות האימייל אינן תואמות"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "חובה להשלים את טופס קוד האימות."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr "קוד האימות אינו תקף"
+
+#: includes/class-wp-members-dialogs.php:135
+msgid "There was an error processing the form."
+msgstr "אירעה שגיאה בעיבוד הטופס."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "היתה שגיאה בטופס קוד האימות."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "המידע שלך עודכן!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "עריכת הפרטים שלך"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "אתה מחובר כ- %s."
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "אפשר להתחיל להשתמש באתר"
+
+#: includes/class-wp-members-dialogs.php:147
+msgid "Click to log out"
+msgstr "ללחוץ כדי לצאת"
+
+#: includes/class-wp-members-dialogs.php:149
+msgid "click to log out"
+msgstr "ללחוץ כדי לצאת"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "ללחוץ כאן כדי לצאת"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder "
+"filter."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "ईमेल संदेश"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "आप प्लगइन द्वारा भेजे गए ईमेल की सामग्री को अनुकूलित कर सकते हैं."
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "शॉर्टकोड की एक सूची यहाँ उपलब्ध है."
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "एक कस्टम ईमेल पता सेट करें"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(वैकल्पिक)"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "एक कस्टम ईमेल का नाम सेट करें"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "ईमेल हस्ताक्षर"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "ईमेल अपडेट करें"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-सदस्य ईमेल अपडेट की गई थीं"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629 includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "आवश्यकता है?"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Edit Field"
+msgstr "जानकारी संपादित करें"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Add a Field"
+msgstr "जोड़ना"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "क्षेत्र लेबल"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no spaces (underscores "
+"are ok)."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "फ़ील्ड प्रकार"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "पाठ"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "textarea"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "चेकबॉक्स"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "पासवर्ड"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "प्रदर्शित करते हैं?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "आवश्यकता है?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+#, fuzzy
+msgid "Checked by default?"
+msgstr "जाँच की?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid "Selecting \"after\" will generally display the label to the right of the checkbox"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#, fuzzy
+msgid "Stored value if checked:"
+msgstr "चेकबॉक्स के लिए, मान संग्रहीत यदि जांचा जाता है:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "विकल्प का नाम होना चाहिए, option_value"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "अधिक जानकारी के लिए प्लगइन साइट पर जाएँ"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+#, fuzzy
+msgid "Add Field"
+msgstr "जोड़ना"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "पंजीकरण पूरा किया"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+#, fuzzy
+msgid "Registration IP"
+msgstr "आईपी @ पंजीकरण"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "फील्ड्स प्रबंधित"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-सदस्य फ़ील्ड्स अपडेट की गई थीं"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. Field was not added."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+#, fuzzy
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr "क्षेत्र लेबल एक नए क्षेत्र जोड़ने के लिए आवश्यक है.कुछ भी नहीं अपडेट किया गया था."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "विकल्प प्रबंधित"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+#, fuzzy
+msgid "Auto Excerpt:"
+msgstr "कुछ अंशः दिखाएँ"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+#, fuzzy
+msgid "Number of words in excerpt:"
+msgstr "कुछ अंशः दिखाएँ"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "समय - आधारित समाप्ति"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "उपयोग के लिए समाप्त करने के लिए"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "परीक्षण अवधि"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "एक परीक्षण अवधि के लिए अनुमति देता"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "व्यवस्थापक को सूचित करें"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "व्यवस्थापक करने के लिए प्रत्येक नए पंजीकरण के लिए ईमेल भेजता है?"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "मध्यम पंजीकरण"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "व्यवस्थापक अनुमोदन के लिए नए पंजीकरण धारण"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional configuration)%s"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "चेतावनी संदेश पर ध्यान न दें"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "व्यवस्थापक पैनल में WP-सदस्य चेतावनी संदेश ध्यान नहीं देता है"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid "Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr "रजिस्टर पृष्ठ URL:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "रजिस्टर पृष्ठ URL:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+#, fuzzy
+msgid "Custom Stylesheet:"
+msgstr "रिवाज"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "सेटिंग्स अपडेट करें"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not all of them "
+"will function exactly the same way. WP-Members will certainly work with any post type that "
+"operate like a post or a page; but you will need to review any custom post type added to "
+"determine that it functions the way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid "The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-सदस्य सेटिंग्स अपडेट की गई थीं"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+#, fuzzy
+msgid "Select a page"
+msgstr "रजिस्टर पृष्ठ URL:"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "%d उपयोगकर्ताओं में सक्रिय थे."
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "प्रथम नाम"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "अंतिम नाम"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "पता 1"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "पता 2"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "शहर"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "राज्य"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "ज़िप"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "देश"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "दिन फोन"
+
+#: includes/class-wp-members-dialogs.php:50 includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "वेबसाइट"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "जीवनी जानकारी"
+
+#: includes/class-wp-members-dialogs.php:54 includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:56 includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "टीओएस"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "आप%s के रूप में लॉग इन कर रहे हैं"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "मौजूदा प्रयोक्ता लॉगिन"
+
+#: includes/class-wp-members-dialogs.php:73 includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75 includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "पासवर्ड भूल गए?"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "रीसेट करने के लिए यहाँ पर क्लिक करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "नये उपयोगकर्ता"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "पंजीकरण केलिए क्लिक करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:83 includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "पासवर्ड बदलें"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "पासवर्ड अद्यतन करें"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "भूल गया पासवर्ड रीसेट करें"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98 includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "नये उपयोगकर्ता"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "एक उपयोगकर्ता नाम चुनें"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106 includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "स्पष्ट फार्म"
+
+#: includes/class-wp-members-dialogs.php:108 includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770 includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "आवश्यक फ़ील्ड"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "जानकारी संपादित करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "नवीनीकरण उपयोगकर्ता"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "असफल लॉगिन!"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "आप एक अवैध उपयोगकर्ता नाम या पासवर्ड में प्रवेश किया."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "यहाँ क्लिक करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "पासवर्ड फ़ील्ड रिक्त नहीं हो सकता"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "क्षमा करें,%s एक आवश्यक फ़ील्ड है."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "आपको एक मान्य ईमेल पता दर्ज करना होगा."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "उपयोक्तानाम गैर अल्फ़ान्यूमेरिक वर्णों को शामिल नहीं कर सकते."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "क्षमा करें, प्रयोक्ता नाम क्षेत्र जरूरी है"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:131 includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "कूटशब्द मेल नहीं खाता"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "कूटशब्द मेल नहीं खाता"
+
+# @ default
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "कॅप्चा प्रपत्र को पूरा करना होगा."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+# @ default
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "कॅप्चा फार्म के साथ एक त्रुटि थी."
+
+# @ default
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "कॅप्चा फार्म के साथ एक त्रुटि थी."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid "Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:138 includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "आपकी जानकारी को अपडेट किया गया था!"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "मेरी जानकारी संपादित करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:143 includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148 includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "आप%s के रूप में लॉग इन कर रहे हैं"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "साइट का उपयोग शुरू करते हैं."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "लॉग इन"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "लॉग इन"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "यहाँ क्लिक करने के लिए लॉग आउट करें"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "이메일 메시지"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "플러그인에 의해 보내지는 이메일 콘텐츠를 사용자 정의 할 수 있습니다."
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "단축코드 목록은 여기서 가능합니다."
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "사용자 정의 이메일 주소 설정"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(선택적)"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "사용자 정의 이메일 이름 설정"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "이메일 서명"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "이메일 업데이트"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-Members 이메일이 업데이트 됐습니다"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "(필수)"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr "필드 편집"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr "필드 추가"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "필드 레이블"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr "사용자에게 표시되는 필드 이름"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+"필드의 데이터베이스 메타 값. 독특해야 하며 스페이스가 없어야 합니다 (밑줄은 "
+"가능)"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "필드 타입"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "텍스트"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "textarea"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "checkbox"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "비밀번호"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "표시?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "필수?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr "기본으로 체크?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr "체크된 경우 저장된 값:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "옵션은 Option Name|option_value이어야 합니다,"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "더 많은 정보는 플러그인 사이트를 방문하세요"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr "필드 추가"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+msgid "Registration Date"
+msgstr "회원가입 일자"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "회원가입 IP"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "필드 관리"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-Members 필드가 업데이트 됐습니다"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr "Checked 값은 체크박스에 필수입니다. 아무것도 업데이트 되지 않았습니다."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "옵션 관리"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr "자동 요약:"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr "요약에서 단어 수:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "시간 기준 만료"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "만료에 접근 허용"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "시험 사용 기간"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "시험사용 기간 허요"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "관리자에게 알림"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "새로운 새로운 회원가입을 %s에 알림? %s"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "회원가입 검토"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "새 회원가입은 관리자 승인 필요"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "경고 메시지 무시하기"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "관리자 화면에서 WP-Members 경고 메시지 무시하기"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr "기여"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+"기여에 대해 감사드립니다! 회원가입 폼에 \"powered by\" 링크를 표시해주세요."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+msgid "Register Page:"
+msgstr "회원가입 페이지:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr "로그인 폼에 회원가입 링크 생성"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+msgid "User Profile Page:"
+msgstr "사용자 프로필 페이지:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr "로그인 폼에서 분실 비밀번호 링크 생성"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr "사용자 정의 스타일시트:"
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "설정 업데이트"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+# @ wp-members
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-Members 설정이 업데이트 됐습니다"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr "아래에서 사용자 정의 URL 사용"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr "페이지 선택"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+msgid "Users Screen"
+msgstr "사용자 화면"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr "올바른 코드 값을 입력하지 않았습니다. 다시 해주세요."
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "이름"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "성"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "주소1"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "주소2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "시"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "주"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "우편번호"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "국가"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "전화번호"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr "이메일 확인"
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "웹사이트"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "자기 소개"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "비밀번호"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr "비밀번호 확인"
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "이용약관"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:66
+msgid "You are not logged in."
+msgstr "로그인하지 않았습니다."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:72
+msgid "Existing Users Log In"
+msgstr "기존 사용자 로그인"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr "아이디 또는 이메일 "
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "로그인"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr "기억하기"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "비밀번호 분실"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "초기화"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "신규 가입"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "회원가입"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "비밀번호 변경"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr "새 비밀번호 확인"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "비밀번호 업데이트"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "분실 비밀번호 초기화"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr "사용자 이름을 잊으셨나요?"
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:103
+msgid "New User Registration"
+msgstr "새로운 사용자 등록"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "아이디"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr "코드 삽입:"
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:107
+msgid "Reset Form"
+msgstr "폼 초기화"
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "회원가입"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "필수란"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "정보 변경하기"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:115
+msgid "Update Profile"
+msgstr "프로필 업데이트"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "로그인 실패"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "유효하지 않은 아이디 또는 비밀번호입니다."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "계속하기"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "비밀번호는 필수입니다."
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "죄송합니다. %s는 필수란입니다."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "유효한 이메일 주소를 입력해야 합니다."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "아이디는 알파벳이나 숫자만 사용합니다."
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "죄송합니다. 아이디는 필수란입니다."
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+msgid "Passwords did not match."
+msgstr "비밀번호가 일치하지 않습니다"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:132
+msgid "Emails did not match."
+msgstr "이메일이 일치하지 않습니다"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "캡챠 폼을 완성해야 합니다."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+# @ default
+#: includes/class-wp-members-dialogs.php:135
+msgid "There was an error processing the form."
+msgstr "폼 처리 중 에러가 있습니다."
+
+# @ default
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "CAPTCHA 폼에 에러가 있습니다."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "회원 정보가 업데이트 됐습니다!"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "내 정보 수정"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "%s으로 로그인 됨"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "사이트 사용하기"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:147
+msgid "Click to log out"
+msgstr "로그아웃 하려면 클릭"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:149
+msgid "click to log out"
+msgstr "로그아웃 하려면 클릭"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr "로그아웃"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "로그아웃 하려면 클릭"
+
+# @ wp-members
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+#, fuzzy
+msgid "Email Messages"
+msgstr "Email"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+#, fuzzy
+msgid "Set a custom email address"
+msgstr "Podano nieprawidłową nazwę użytkownika lub hasło."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "Opcjonalnie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#, fuzzy
+msgid "Email Signature"
+msgstr "Email"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+#, fuzzy
+msgid "Update Emails"
+msgstr "Aktualizacja użytkownika"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+#, fuzzy
+msgid "WP-Members emails were updated"
+msgstr "Ustawienia pól formularza WP-Members zostały zapisane"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "Wymagane?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Edit Field"
+msgstr "Edytuj swoje dane"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Add a Field"
+msgstr "Dodaj/Usuń"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Opis pola"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Typ pola"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+#, fuzzy
+msgid "text"
+msgstr ""
+"Twoje ustawienia WP umożliwiają wyświetlanie pełnych treści wpisów poprzez "
+"RSS - nie jest to rekomendowane ustawienie."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+#, fuzzy
+msgid "checkbox"
+msgstr "pole wyboru"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+#, fuzzy
+msgid "password"
+msgstr "Hasło"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Wyświetl?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Wymagane?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+#, fuzzy
+msgid "Checked by default?"
+msgstr "Zaznaczone?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#, fuzzy
+msgid "Stored value if checked:"
+msgstr "Zaznaczone?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+#, fuzzy
+msgid "Add Field"
+msgstr "Dodaj/Usuń"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "Zakończona rejestracja"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "IP z rejestracji"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Zarządzaj polami formularza"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "Ustawienia pól formularza WP-Members zostały zapisane"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Zarządzaj ustawieniami"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+#, fuzzy
+msgid "Auto Excerpt:"
+msgstr "Pokaż fragmenty"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+#, fuzzy
+msgid "Number of words in excerpt:"
+msgstr "Pokaż fragmenty"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Powiadomienia dla admina"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Wysłać email do admina po każdej rejestracji?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Moderowanie rejestracji"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Wstrzymaj nowych użytkowników do akceptacji admina"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+#, fuzzy
+msgid "Ignore warning messages"
+msgstr ""
+"To ustawienie pozwala dodawać komentarze nawet niezarejestrowanym "
+"użytkownikom. Ustawienie to powinno się dostosować do tego jaki masz zamiar "
+"wykorzystywania wtyczki WP-Members. Jeśli nie chcesz tego zmieniać, możesz "
+"wybrać ignorowanie tego komunikatu w ustawieniach WP-Members."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "Ignoruj ostrzeżenia WP-Members w panelu administracyjnym"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr "Adres formularze rejestracji:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "Aktualizacja użytkownika"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+#, fuzzy
+msgid "Custom Stylesheet:"
+msgstr "Dostosowany"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Zapisz ustawienia"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "Ustawienia WP-Members zostały zapisane"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+#, fuzzy
+msgid "Select a page"
+msgstr "Wybierz stronę"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "Eksportuj"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Imię"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Nazwisko"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Adres"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Adres c.d."
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Miasto"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Województwo"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Kod pocztowy"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Państwo"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Telefon"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "Email"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Strona internetowa"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Hasło"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "WU"
+
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "Jesteś zalogowany jako %s"
+
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "Zaloguj"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "Zaloguj"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Zapomniane hasło?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Kliknij aby zresetować hasło"
+
+#: includes/class-wp-members-dialogs.php:79
+#, fuzzy
+msgid "New User?"
+msgstr "Aktualizacja użytkownika"
+
+#: includes/class-wp-members-dialogs.php:80
+#, fuzzy
+msgid "Click here to register"
+msgstr "Kliknij aby zresetować hasło"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Zmień hasło"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Zmień hasło"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Przypomnienie hasła"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Przypomnienie hasła"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "Aktualizacja użytkownika"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Wybierz nazwę użytkownika"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "Nieprawidłowy kod CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+#, fuzzy
+msgid "Register"
+msgstr ""
+"Twoje ustawienia WP pozwalają się zarejestrować dowolnej osobie - nie jest "
+"to rekomendowane ustawienie."
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Pole wymagane"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Edytuj swoje dane"
+
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "Aktualizacja użytkownika"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Nieudane logowanie!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Podano nieprawidłową nazwę użytkownika lub hasło."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Kliknij aby kontynuować."
+
+#: includes/class-wp-members-dialogs.php:122
+#, fuzzy
+msgid "Password fields cannot be empty"
+msgstr "Niezgadzające się hasła"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Przepraszamy, ale %s jest wymaganym polem."
+
+#: includes/class-wp-members-dialogs.php:126
+#, fuzzy
+msgid "You must enter a valid email address."
+msgstr "Podano nieprawidłową nazwę użytkownika lub hasło."
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Przepraszamy, nazwa użytkownika jest wymagana."
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "Niezgadzające się hasła"
+
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "Niezgadzające się hasła"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "Musisz przepisać kod CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "Nieprawidłowy kod CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "Nieprawidłowy kod CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Zmiany w Twoich danych zostały zapisane!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Edytuj moje informacje"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "Jesteś zalogowany jako %s"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Zapraszamy do zapoznanania się ze stroną."
+
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "Zaloguj"
+
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "Zaloguj"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "wyloguj się"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+#, fuzzy
+msgid "Email Messages"
+msgstr "eMail"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+#, fuzzy
+msgid "Set a custom email address"
+msgstr "Inseriu um username ou password inválidos."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+#, fuzzy
+msgid "Set a custom email name"
+msgstr "Inseriu um username ou password inválidos."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "Aviso de email já registado:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+#, fuzzy
+msgid "Update Emails"
+msgstr "Aviso de confirmação de atualização de dados do usuário:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+#, fuzzy
+msgid "WP-Members emails were updated"
+msgstr "WP-Members possui direitos autorais"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "Requerido?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Edit Field"
+msgstr "Edite suas Informações"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Add a Field"
+msgstr "Campo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Campo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+#, fuzzy
+msgid "Field Type"
+msgstr "Campo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+#, fuzzy
+msgid "text"
+msgstr ""
+"Suas configurações do WordPress permitem feeds RSS com texto completo. Esta "
+"não é uma configuração recomendada."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+#, fuzzy
+msgid "checkbox"
+msgstr "Campos Adicionais do WP-Members"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "Password"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Exibir?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Requerido?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+#, fuzzy
+msgid "Checked by default?"
+msgstr "Bloquear Posts por Padrão:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#, fuzzy
+msgid "Stored value if checked:"
+msgstr "Bloquear Posts por Padrão:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+#, fuzzy
+msgid "Add Field"
+msgstr "Campo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "Registo completo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+#, fuzzy
+msgid "Registration IP"
+msgstr "Registo completo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Gerenciar Campos"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+#, fuzzy
+msgid "WP-Members fields were updated"
+msgstr "Campos Adicionais do WP-Members"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Opções de Gerenciamento"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+#, fuzzy
+msgid "Auto Excerpt:"
+msgstr "Exibir Trechos:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+#, fuzzy
+msgid "Number of words in excerpt:"
+msgstr "Exibir Trechos:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Expirar Acesso:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Permite que o acesso expire por tempo."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Período de Experiência:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Permite período de experiência."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Notificar Administrador:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Enviar email para administrador para cada novo registro?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Moderar Registro:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Intercepta novos registros para aprovação do administrador."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Ignorar Mensagens de Advertência:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr ""
+"Ignora as mensagens de advertência do WP-Members no painel administrativo."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr "Registar-se"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "Aviso de confirmação de atualização de dados do usuário:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+#, fuzzy
+msgid "Custom Stylesheet:"
+msgstr "Customizado"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+#, fuzzy
+msgid "Update Settings"
+msgstr "Atualizar Configuração do reCAPTCHA"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+#, fuzzy
+msgid "WP-Members settings were updated"
+msgstr "Campos Adicionais do WP-Members"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+#, fuzzy
+msgid "Select a page"
+msgstr "Moderar Registo:"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "Log In"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Nome"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Apelido"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Endereço"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Complemento"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Cidade"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Estado"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Código-postal"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "País"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Telefone"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "eMail"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Website"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Password"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "Username ou password inválidos."
+
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "Log In"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+#, fuzzy
+msgid "Log In"
+msgstr "Log In"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Esqueceu a password?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Clique aqui para reiniciar"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Novo utilizador?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Clique aqui para registar-se"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Alterar password"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Atualizar password"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Redefinir password esquecida"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Definir nova senha"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "Novo utilizador?"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Username"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "Redefinição de password"
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Registar-se"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Campo obrigatório"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Edite suas Informações"
+
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "Aviso de confirmação de atualização de dados do usuário:"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Login falhou!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Username ou password inválidos."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Clique aqui para continuar."
+
+#: includes/class-wp-members-dialogs.php:122
+#, fuzzy
+msgid "Password fields cannot be empty"
+msgstr "Aviso de diferença nas senhas digitadas:"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, fuzzy, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Username é um campo obrigatório"
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Inseriu um username ou password inválidos."
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Username é um campo obrigatório"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "As passwords não coincidem"
+
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "As passwords não coincidem"
+
+#: includes/class-wp-members-dialogs.php:133
+#, fuzzy
+msgid "You must complete the CAPTCHA form."
+msgstr "você precisa completar o formulário da CAPTCHA"
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "Notificações e Mensagens de Erro"
+
+#: includes/class-wp-members-dialogs.php:136
+#, fuzzy
+msgid "There was an error with the CAPTCHA form."
+msgstr "Notificações e Mensagens de Erro"
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Sua informação foi atualizada!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Editar info pessoal"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, fuzzy, php-format
+msgid "You are logged in as %s"
+msgstr "Username ou password inválidos."
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+#, fuzzy
+msgid "Begin using the site."
+msgstr "Obrigado por usar o WP-Members! Você está a utilizar a versão"
+
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "Clique aqui para reiniciar"
+
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "Clique aqui para reiniciar"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "clique aqui para fazer logout"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "E-mailové správy"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "Môžete prispôsobiť obsah e-mailov odoslané plugin."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "Tu je k dispozícii zoznam shortcodes."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "Nastaviť vlastnú e-mailovú adresu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(voliteľné)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "Nastaviť názov vlastného e-mailu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "Podpis e-mailu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "Aktualizácia e-mailov"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-členovia e-maily boli aktualizované"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "Vyžadováno?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Edit Field"
+msgstr "Upraviť vaše informácie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Add a Field"
+msgstr "Pridať a odstrániť"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Označenie poľa"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Typ poľa"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "textu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "Textarea"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "Checkbox"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "heslo"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Zobraziť?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Vyžadováno?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+#, fuzzy
+msgid "Checked by default?"
+msgstr "Skontrolovať?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#, fuzzy
+msgid "Stored value if checked:"
+msgstr "Skontrolovať?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "Možnosti by mala byť možnosť Name|option_value"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "Môžete tiež navštíviť lokalitu plugin pre ďalšie informácie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+#, fuzzy
+msgid "Add Field"
+msgstr "Pridať a odstrániť"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "Registrácia dokončená"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "IP @ registrácie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Spravovať polia"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-členovia polia boli aktualizované"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+#, fuzzy
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr "Označenie poľa je potrebné pridať nové pole. Nič bol aktualizovaný."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Spravovať možnosti"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+#, fuzzy
+msgid "Auto Excerpt:"
+msgstr "Zobrazenie ukážky"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+#, fuzzy
+msgid "Number of words in excerpt:"
+msgstr "Zobrazenie ukážky"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Skončenie časového"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Umožňuje prístup k uplynie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Skúšobné obdobie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Umožňuje skúšobnú dobu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Oznámiť admin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Pošle email admin pre každý nový zápis?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Mierny registrácie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Vlastní nových registrácií schvaľovania admin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Ignorovanie upozornení"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "Ignoruje WP-členovia upozorňujúcich hlásení v admin panel"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr "URL stránky registra:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "Používateľom aktualizácie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+#, fuzzy
+msgid "Custom Stylesheet:"
+msgstr "Vlastné"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Aktualizovať nastavenia"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-členovia nastavenia boli aktualizované"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+#, fuzzy
+msgid "Select a page"
+msgstr "Nový zápis"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "Vývoz"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Krstné meno"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Priezvisko"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Adresa 1"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Adresa 2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Mesto"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Štát"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Zip"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Krajina"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Deň telefón"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "E-mailom"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Webová stránka"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "Biografické Info"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Heslo"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "PREVÁDZKOVATELIA V ODVETVÍ TELEKOMUNIKÁCIÍ"
+
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "Ste prihlásený ako %s"
+
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "Prihlásenie"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "Prihlásenie"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Zabudli ste heslo?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Kliknite sem, ak chcete obnoviť"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Nový užívateľ?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Kliknite tu pre registráciu"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Zmena hesla"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Aktualizácia hesla"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Obnovenie zabudnutého hesla"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Reset hesla"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "Nový užívateľ?"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Vyberte meno"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "Vyskytla sa chyba s CAPTCHA formou."
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Zaregistrovať sa"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Povinné pole"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Upraviť vaše informácie"
+
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "Používateľom aktualizácie"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Prihlásenie zlyhalo!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Zadali ste neplatné meno používateľa alebo heslo."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Kliknite tu pre pokračovať."
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "Polia heslo nemôže byť prázdne"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Je nám ľúto, ale %s je názov požadovaného poľa."
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Musíte zadať platnú e-mailovú adresu."
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "Užívateľské meno nemôže obsahovať iné ako alfanumerické znaky."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Je nám ľúto, ale username je názov požadovaného poľa"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "Passwords did not match"
+
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "Passwords did not match"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "Musíte vyplniť formulár CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "Vyskytla sa chyba s CAPTCHA formou."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "Vyskytla sa chyba s CAPTCHA formou."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Vaše informácie bolo aktualizované!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Upraviť moje informácie"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "Ste prihlásený ako %s"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Začať pomocou lokality."
+
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "Prihlásenie"
+
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "Prihlásenie"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "Kliknite tu pre odhlásenie"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "Email poruke"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr "Možete da customize-irate sadržaj emailova poslatih pluginom. "
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "Lista shortcode-ova dostupnih ovde. "
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "Podesi custom email adresu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(opcionalno)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "Podesi custom email ie"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "Email potpis"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "Updateuj mailove"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-Members emailovi su updatovani"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "Potrbno?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Edit Field"
+msgstr "Редактирование ваших данных"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+#, fuzzy
+msgid "Add a Field"
+msgstr "Добавить/удалить"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Pronadji oznaku"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Tip polja"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "tekst"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "područje teksta"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "checkbox"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "šifra"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Prikaži?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Potrbno?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+#, fuzzy
+msgid "Checked by default?"
+msgstr "Отмечено?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#, fuzzy
+msgid "Stored value if checked:"
+msgstr "Отмечено?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "Opcije bi treblo da budu Option Name|option_value,"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "Posetite sajt plugina za više informacija"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+#, fuzzy
+msgid "Add Field"
+msgstr "Добавить/удалить"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "Регистрация завершена"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+#, fuzzy
+msgid "Registration IP"
+msgstr "IP при регистрации"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Upravljazi poljima"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-Members polja su updatovana"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. Field "
+"was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+#, fuzzy
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+"Polje oznake je potrebno za dodavanje novih polja. Ništa nije updatovano. "
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Upravljaj opcijama"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+#, fuzzy
+msgid "Auto Excerpt:"
+msgstr "Prikaži odlomke"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+#, fuzzy
+msgid "Number of words in excerpt:"
+msgstr "Prikaži odlomke"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Trajanje bazirano na vremenu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Dozvoljava vam da pristupite trajanju"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Trial period"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Dozvoljeno za trial period"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Obavesti admina"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Pošalji email adminu za svaku novu registraciju?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Upravljajte registracijom"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Sadrži nove registracije za odobrenje od dmina"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Ignorisati poruke upozorenja"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "Ignorisati WP-Members poruke upozorenja u admin panelu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr " URL registarske stranice:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "Пользователь обновлен"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+#, fuzzy
+msgid "Custom Stylesheet:"
+msgstr "Пользовательский"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Update postavki"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will need "
+"to review any custom post type added to determine that it functions the way "
+"you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-Memberspostavke su updatovane"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+#, fuzzy
+msgid "Select a page"
+msgstr "Nova registracija"
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "Выгрузить"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Ime"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Prezime"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Adresa 1"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Adresa 2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Grad"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Država"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Poštanski broj"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Zemlja"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Dnevni telefon"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "Email"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Website"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "Biografska info"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Šifra"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "TOS"
+
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "Ulogovani ste kao %s"
+
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "Войти"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+#, fuzzy
+msgid "Log In"
+msgstr "Войти"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Zaboravili ste šifru?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Kliknite ovde za restart"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Novi korisnik?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Kliknite ovde za registraciju"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Promeni šifru"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Update-uj čifr"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Resetuj zabranjenu šifru"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Resetuj šifru"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "Новый пользователь?"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Izaberite korisničko ime"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "Произошла ошибка в форма CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Registruj se"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Zahtevano polje"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Edituj svoje informcije"
+
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "Пользователь обновлен"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Login nije uspeo!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Uneli ste nepostojeće korisničko ime ili šifru.."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Klik ovde za nastavak."
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "Oilja sa šiframa ne mogu da budu prazna"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Žao nam je, %s je m ora da bude unešeno u polje."
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Morate da unesete validnu email adresu."
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "Ime korisnika ne može da uključi ne alfanumeričke karaktere."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Žao nam je, korisničko ime morate da unesete u polje"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "Šifra se ne slaže"
+
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "Šifra se ne slaže"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "Morate da popunite CAPTCHA formu."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "Произошла ошибка в форма CAPTCHA."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "Pojavio se error sa CAPTCHA formom."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Vaša informacija je updatovana!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Editujte moje informacije"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "Ulogovani ste kao %s"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Počnite da koristite sajt"
+
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "Войти"
+
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "Войти"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "klik ovde za logout"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr "Eposta Mesajları"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr ""
+"Eklenti tarafından gönderilen epostaların içeriğini kişiselleştirebilirsiniz."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr "Kısa kodların listesi burada mevcuttur."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr "Kişisel bir eposta adresi ayarla"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr "(isteğe bağlı)"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr "Kişisel bir eposta adı ayarla"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr "Eposta İmzası"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr "Epostaları Güncelle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr "WP-Members epostaları güncellendi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr "Gerekli?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr "Bilgi Alanını Düzenle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr "Bir Bilgi Alanı Ekle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr "Bilgi Alanı Etiketi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr "Kullanıcıya gösterilecek bilgi alanı adı."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+"Bilgi alanı için veritabanı meta değeri. Bu benzersiz olmalı ve boşluk "
+"içermemelidir (alt çizgiler olabilir)."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr "Bilgi Alanı Türü"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr "metin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr "metin alanı"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr "onay kutusu"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr "şifre"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr "Görüntülensin?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr "Gerekli?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr "Varsayılan olarak İşaretli?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr "İşaretlendiğinde depolanan değer:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr "Seçenekler Seçenek Adı|seçenek_değeri şeklinde olmalıdır,"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr "Daha fazla bilgi için eklenti sitesini ziyaret edin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr "Alan ekle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+#, fuzzy
+msgid "Registration Date"
+msgstr "Kayıt tamamlandı"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr "IP @ kaydı"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr "Alanları Yönet"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr "WP-Members bilgi alanları güncellendi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+"İşaretli seçim değeri onay kutularını gerektirir. Hiçbir şey güncellenmedi."
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr "Seçenekler Yönet"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr "Otomatik Alıntı:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr "Alıntıdaki kelime sayısı:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr "Zaman-tabanlı sona erme"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr "Erişim süresinin dolmasına izin verir"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr "Deneme süresi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr "Bir deneme süresi için izin verir"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr "Yöneticiye bildir"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, fuzzy, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr "Her yeni kayıt için yöneticiye eposta gönderilsin mi?"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr "Kaydı Denetle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr "Yeni kayıtları yönetici onayı için bekletir"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr "Uyarı mesajlarını yoksay"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr "Yönetici panelinde WP-Members uyarı mesajlarını yoksayar"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+#, fuzzy
+msgid "Register Page:"
+msgstr "Kayıt Sayfa URL:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+#, fuzzy
+msgid "User Profile Page:"
+msgstr "Kullanıcı güncelleme"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+#, fuzzy
+msgid "Stylesheet"
+msgstr "Stil Sayfası"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr "Kişisel Stil Sayfası:"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr "Ayarları Güncelle"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr "WP-Members ayarları güncellendi"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+#, fuzzy
+msgid "USE CUSTOM URL BELOW"
+msgstr "Bir stil sayfası seçin veya aşağıda kişisel bir stil sayfası belirtin"
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+#, fuzzy
+msgid "Users Screen"
+msgstr "Dışa aktar"
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr "Ad"
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr "Soyad"
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr "Adres 1"
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr "Adres 2"
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr "Şehir"
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr "Eyalet"
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr "Posta Kodu"
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr "Ülke"
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr "Telefon"
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr "Eposta"
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr "Web site"
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr "Biyografik Bilgi"
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr "Şifre"
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr "HK"
+
+#: includes/class-wp-members-dialogs.php:66
+#, fuzzy
+msgid "You are not logged in."
+msgstr "%s olarak oturum açtınız"
+
+#: includes/class-wp-members-dialogs.php:72
+#, fuzzy
+msgid "Existing Users Log In"
+msgstr "Giriş"
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr "Giriş"
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr "Şifreni mi unuttun?"
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr "Sıfırlamak için buraya tıkla"
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr "Yeni Kullanıcı?"
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr "Kayıt olmak için tıklayın"
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr "Şifreyi Değiştir"
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr "Şifreyi Güncelle"
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr "Unutulan Şifreyi Sıfırla"
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr "Şifreyi Sıfırla"
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+#, fuzzy
+msgid "New User Registration"
+msgstr "Yeni Kullanıcı?"
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr "Bir Kullanıcı Adı Seçin"
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+#, fuzzy
+msgid "Reset Form"
+msgstr "CAPTCHA formu ile ilgili bir hata oluştu."
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr "Kaydol"
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr "Gerekli alan"
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr "Bilgilerini Düzenle"
+
+#: includes/class-wp-members-dialogs.php:115
+#, fuzzy
+msgid "Update Profile"
+msgstr "Kullanıcı güncelleme"
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr "Giriş Başarısız!"
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr "Geçersiz bir kullanıcı adı veya şifre girdiniz."
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr "Devam etmek için tıklayın."
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr "Şifre alanları boş bırakılamaz"
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr "Üzgünüz, %s gerekli bir alandır."
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr "Geçerli bir eposta adresi girmelisiniz."
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr "Kullanıcı adı alfasayısal olmayan karakterler içeremez."
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr "Üzgünüz, kullanıcı adı gerekli bir alandır"
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+#, fuzzy
+msgid "Passwords did not match."
+msgstr "Şifreler eşleşmedi"
+
+#: includes/class-wp-members-dialogs.php:132
+#, fuzzy
+msgid "Emails did not match."
+msgstr "Şifreler eşleşmedi"
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr "CAPTCHA formunu doldurmalısınız."
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+#, fuzzy
+msgid "There was an error processing the form."
+msgstr "CAPTCHA formu ile ilgili bir hata oluştu."
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr "CAPTCHA formu ile ilgili bir hata oluştu."
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr "Bilgileriniz güncellendi!"
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr "Bilgilerimi Düzenle"
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr "%s olarak oturum açtınız"
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr "Siteyi kullanmaya başlayın."
+
+#: includes/class-wp-members-dialogs.php:147
+#, fuzzy
+msgid "Click to log out"
+msgstr "Giriş"
+
+#: includes/class-wp-members-dialogs.php:149
+#, fuzzy
+msgid "click to log out"
+msgstr "Giriş"
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr "Çıkış için buraya tıklayın"
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!wpmem_dropin_folder filter."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:57
+msgid "Email Messages"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:60
+msgid "You can customize the content of the emails sent by the plugin."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:62
+msgid "A list of shortcodes is available here."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:69
+msgid "Set a custom email address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:70
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:74
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:163
+msgid "(optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:73
+msgid "Set a custom email name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:77
+msgid "Send HTML email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:93
+msgid "Email Signature"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:101
+msgid "Update Emails"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-emails.php:172
+msgid "WP-Members emails were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:93
+#: includes/class-wp-members-dialogs.php:65
+msgid "No fields selected for deletion"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:95
+msgid "Are you sure you want to delete the following fields?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:122
+msgid "Fields deleted"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:136
+msgid "Field Manager Documentation"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:164
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+#: includes/class-wp-members-forms.php:1629
+#: includes/class-wp-members-forms.php:1821
+#: includes/class-wp-members-user-profile.php:181
+msgid "(required)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Edit Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:169
+msgid "Add a Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:174
+msgid "Field Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:176
+msgid "The name of the field as it will be displayed to the user."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:179
+#: includes/admin/tabs/class-wp-members-fields-table.php:58
+msgid "Meta Key"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:185
+msgid ""
+"The database meta value for the field. It must be unique and contain no "
+"spaces (underscores are ok)."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:189
+#: includes/admin/tabs/class-wp-members-fields-table.php:59
+msgid "Field Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:195
+msgid "text"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:196
+msgid "email"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:197
+msgid "textarea"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:198
+msgid "checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:199
+msgid "multiple checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:200
+msgid "select (dropdown)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:201
+msgid "multiple select"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:202
+msgid "radio group"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:203
+msgid "password"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:204
+msgid "image"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:205
+msgid "file"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:206
+msgid "url"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:207
+msgid "number"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:208
+msgid "date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:209
+msgid "hidden"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:211
+msgid "membership"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:217
+#: includes/admin/tabs/class-wp-members-fields-table.php:60
+msgid "Display?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:221
+msgid "This field is always displayed"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:226
+msgid "Required?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:230
+msgid "This field is always required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:236
+msgid "Allow HTML?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:243
+msgid "Placeholder"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:251
+msgid "Pattern"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:259
+msgid "Title"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:268
+msgid "Minimum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:272
+msgid "Maximum Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:280
+msgid "Rows"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:284
+msgid "Columns"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:292
+msgid "Accepted file types:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:297
+msgid "Accepted file types should be set like this: jpg|jpeg|png|gif"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:304
+msgid "Checked by default?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:308
+msgid "HTML label position"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:310
+msgid "Before the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:311
+msgid "After the input tag"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:312
+msgid ""
+"Selecting \"after\" will generally display the label to the right of the "
+"checkbox"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:315
+msgid "Stored value if checked:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:336
+msgid "Stored values delimiter:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:345
+msgid "Values (Displayed|Stored):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:370
+msgid "Options should be Option Name|option_value,"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:374
+msgid "Visit plugin site for more information"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:381
+msgid "Value"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+msgid "Save Changes"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:400
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:527
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:528
+msgid "Add Field"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:402
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:726
+msgid "Return to Fields Table"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:449
+msgid "Drag and drop to reorder fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:455
+msgid "Registration Date"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:458
+msgid "Registration IP"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:459
+msgid "Subscription Type"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:495
+msgid "Manage Fields"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:595
+msgid "WP-Members fields were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:617
+msgid "Field Label is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:618
+msgid "Meta Key is required. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:620
+msgid "Meta Key must contain only letters, numbers, and underscores"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:627
+msgid "A field with that meta key already exists"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:632
+#, php-format
+msgid ""
+"Sorry, \"%s\" is a reserved term. "
+"Field was not added."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:673
+msgid "Checked value is required for checkboxes. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:705
+msgid "A value is required for hidden fields. Nothing was updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:712
+#, php-format
+msgid "%s was added"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:725
+#, php-format
+msgid "%s was updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-fields.php:768
+msgid "Form field order updated."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:56
+#, php-format
+msgid "%sChange%s or %sFilter%s this address"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:57
+#, php-format
+msgid "See the %sUsers Guide on plugin options%s."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:90
+msgid "Manage Options"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:94
+msgid "Content"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:105
+msgid "Content Restriction"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:109
+msgid "Do not restrict"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:123
+msgid "Show Excerpts"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:124
+msgid "Show Login Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:125
+msgid "Show Registration Form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:126
+msgid "Auto Excerpt:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:148
+msgid "Number of words in excerpt:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:149
+msgid "Custom read more link (optional):"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Time-based expiration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:163
+msgid "Allows for access to expire"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Trial period"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:164
+msgid "Allows for a trial period"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:166
+msgid "Subscription Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:176
+msgid "New Feature Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+msgid "Legacy Password Reset"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:182
+#, php-format
+msgid "Use legacy password reset. %s(Requires additional configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Legacy Login Error"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:184
+msgid "Use legacy WP-Members login error instead of WP error object."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "WooCommerce My Account"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:187
+msgid "Add WP-Members fields to WooCommerce My Account registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "WooCommerce Checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:188
+msgid "Add WP-Members fields to WooCommerce registration during checkout"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:204
+msgid "Other Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+msgid "Enable memberships"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:214
+#, php-format
+msgid "Enables creation of different %s membership products %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:223
+msgid "Clone menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:215
+msgid "Enables logged in menus"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+msgid "Notify admin"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:216
+#, php-format
+msgid "Notify %s for each new registration? %s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Moderate registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:217
+msgid "Holds new registrations for admin approval"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+msgid "Confirmation Link"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:218
+#, php-format
+msgid ""
+"Send email confirmation link on new registration. %s(Requires additional "
+"configuration)%s"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignore warning messages"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:219
+msgid "Ignores WP-Members warning messages in the admin panel"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:233
+msgid "Attribution"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:235
+msgid ""
+"Attribution is appreciated! Display \"powered by\" link on register form?"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:238
+msgid "Enable CAPTCHA for Registration"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:253
+msgid "Login Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:256
+msgid "Specify a login page (optional)"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:265
+msgid "Register Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:268
+msgid "For creating a register link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:277
+msgid "User Profile Page:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:280
+msgid "For creating a forgot password link in the login form"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:286
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:288
+msgid "Stylesheet"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:297
+msgid "Custom Stylesheet:"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:302
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:329
+msgid "Update Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:310
+msgid "Custom Post Types"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:316
+msgid "Add to WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:332
+msgid ""
+"Please keep in mind that Custom Post Types are \"custom\" and therefore, not "
+"all of them will function exactly the same way. WP-Members will certainly "
+"work with any post type that operate like a post or a page; but you will "
+"need to review any custom post type added to determine that it functions the "
+"way you expect."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:342
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:343
+msgid "WP-Members Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:344
+msgid ""
+"The following is your WP-Members settings information if needed for support."
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:378
+msgid "Click to Copy"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:458
+msgid "Custom Post Type settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:579
+msgid "WP-Members settings were updated"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:651
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:682
+msgid "USE CUSTOM URL BELOW"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-admin-tab-options.php:671
+msgid "Select a page"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:70
+msgid "Name"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:71
+msgid "Enabled"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:72
+msgid "File"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:73
+msgid "Version"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:74
+#: includes/walkers/class-wp-members-walker-nav-menu.php:186
+msgid "Description"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-dropins-table.php:117
+#: includes/admin/tabs/class-wp-members-fields-table.php:108
+msgid "Save Settings"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:43
+msgid "delete"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:57
+msgid "Display Label"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:61
+msgid "Required"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:63
+msgid "Users Screen"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:64
+msgid "Users Search"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:66
+msgid "Sort"
+msgstr ""
+
+#: includes/admin/tabs/class-wp-members-fields-table.php:107
+msgid "Delete Selected"
+msgstr ""
+
+#: includes/api/api-forms.php:584
+#, php-format
+msgid "%s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-captcha.php:276 includes/deprecated.php:401
+msgid "You have entered an incorrect code value. Please try again."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:41
+msgid "First Name"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:42
+msgid "Last Name"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:43
+msgid "Address 1"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:44
+msgid "Address 2"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:45
+msgid "City"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:46
+msgid "State"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:47
+msgid "Zip"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:48
+msgid "Country"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:49
+msgid "Day Phone"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:50
+#: includes/class-wp-members-dialogs.php:92
+msgid "Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:51
+msgid "Confirm Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:52
+msgid "Website"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:53
+msgid "Biographical Info"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:54
+#: includes/class-wp-members-dialogs.php:74
+#: includes/class-wp-members-dialogs.php:159
+msgid "Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:55
+msgid "Confirm Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:56
+#: includes/class-wp-members-forms.php:2165
+msgid "TOS"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:66
+msgid "You are not logged in."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:72
+msgid "Existing Users Log In"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:73
+#: includes/class-wp-members-dialogs.php:158
+msgid "Username or Email"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:75
+#: includes/class-wp-members-shortcodes.php:773
+msgid "Log In"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:76
+msgid "Remember Me"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:77
+msgid "Forgot password?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:78
+msgid "Click here to reset"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:79
+msgid "New User?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:80
+msgid "Click here to register"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:83
+#: includes/class-wp-members-dialogs.php:142
+msgid "Change Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:84
+msgid "New password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:85
+msgid "Confirm new password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:86
+msgid "Update Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:87
+msgid "Password successfully changed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:90
+msgid "Reset Forgotten Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:93
+msgid "Reset Password"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:94
+msgid "Forgot username?"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:95
+msgid "Click here"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:98
+#: includes/class-wp-members-dialogs.php:100
+msgid "Retrieve username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:99
+msgid "Email Address"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:103
+msgid "New User Registration"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:104
+msgid "Choose a Username"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:105
+msgid "Input the code:"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:106
+#: includes/class-wp-members-forms.php:2164
+#, php-format
+msgid "Please indicate that you agree to the %s Terms of Service %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:107
+msgid "Reset Form"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:108
+#: includes/class-wp-members-dialogs.php:162
+#: includes/class-wp-members-shortcodes.php:770
+#: includes/class-wp-members-user.php:186
+msgid "Register"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:110
+msgid "Required field"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:113
+msgid "Edit Your Information"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:115
+msgid "Update Profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:116
+msgid "Update this file"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:119
+msgid "Login Failed!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:120
+msgid "You entered an invalid username or password."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:121
+msgid "Click here to continue."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:122
+msgid "Password fields cannot be empty"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:123
+msgid "Sorry, that email address was not found."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:124
+#, php-format
+msgid "An email was sent to %s with your username."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:125
+#, php-format
+msgid "Sorry, %s is a required field."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:126
+msgid "You must enter a valid email address."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:127
+msgid "The username cannot include non-alphanumeric characters."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:128
+msgid "Sorry, username is a required field"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:129
+msgid "Sorry, that username is taken, Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:130
+msgid "Sorry, that email address already has an account. Please try another."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:131
+#: includes/class-wp-members-dialogs.php:174
+msgid "Passwords did not match."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:132
+msgid "Emails did not match."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:133
+msgid "You must complete the CAPTCHA form."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:134
+msgid "CAPTCHA was not valid."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:135
+msgid "There was an error processing the form."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:136
+msgid "There was an error with the CAPTCHA form."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:137
+#, php-format
+msgid ""
+"Sorry, you can only upload the following file types for the %s field: %s."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:138
+#: includes/class-wp-members-dialogs.php:171
+msgid "Your information was updated!"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:141
+msgid "Edit My Information"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:143
+#: includes/class-wp-members-dialogs.php:146
+#: includes/class-wp-members-dialogs.php:148
+#: includes/class-wp-members-dialogs.php:153
+#, php-format
+msgid "You are logged in as %s"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:144
+msgid "Log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Edit profile"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:145
+msgid "Begin using the site."
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:147
+msgid "Click to log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:149
+msgid "click to log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:150
+msgid "Log Out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:154
+msgid "click here to log out"
+msgstr ""
+
+#: includes/class-wp-members-dialogs.php:155
+msgid "Login Failed!- - -
-- - -
- '; - - /** - * Filter the widget title. - * - * @since ?.? - * - * @param string $title The widget title. - */ - echo $args['before_title'] . apply_filters( 'wpmem_widget_title', $title ) . $args['after_title']; - - // The Widget - if ( function_exists( 'wpmem' ) ) { wpmem_do_sidebar( $redirect_to ); } - - echo ''; - echo $args['after_widget']; - } -} \ No newline at end of file diff --git a/inc/class-wp-members.php b/inc/class-wp-members.php deleted file mode 100644 index 88963264..00000000 --- a/inc/class-wp-members.php +++ /dev/null @@ -1,425 +0,0 @@ -settings An array of the WP-Members settings. - */ - $settings = apply_filters( 'wpmem_settings', get_option( 'wpmembers_settings' ) ); - - // Validate that v3 settings are loaded. - if ( ! isset( $settings['version'] ) ) { - // If settings were not properly built during plugin upgrade. - require_once( WPMEM_PATH . 'wp-members-install.php' ); - $settings = apply_filters( 'wpmem_settings', wpmem_update_settings() ); - } - - // Assemble settings. - foreach ( $settings as $key => $val ) { - $this->$key = $val; - } - - // Set the stylesheet. - $this->cssurl = ( isset( $this->style ) && $this->style == 'use_custom' ) ? $this->cssurl : $this->style; - } - - /** - * Plugin initialization function to load shortcodes. - * - * @since 3.0.0 - */ - function load_shortcodes() { - - require_once( WPMEM_PATH . 'inc/shortcodes.php' ); - add_shortcode( 'wp-members', 'wpmem_shortcode' ); - add_shortcode( 'wpmem_field', 'wpmem_shortcode' ); - add_shortcode( 'wpmem_logged_in', 'wpmem_sc_logged_in' ); - add_shortcode( 'wpmem_logged_out', 'wpmem_sc_logged_out' ); - add_shortcode( 'wpmem_logout', 'wpmem_shortcode' ); - add_shortcode( 'wpmem_form', 'wpmem_sc_forms' ); - - /** - * Fires after shortcodes load (for adding additional custom shortcodes). - * - * @since 3.0.0 - */ - do_action( 'wpmem_load_shortcodes' ); - } - - /** - * Plugin initialization function to load hooks. - * - * @since 3.0.0 - */ - function load_hooks() { - - // Add actions. - add_action( 'init', array( $this, 'get_action' ) ); - add_action( 'widgets_init', 'widget_wpmemwidget_init' ); // initializes the widget - add_action( 'admin_init', 'wpmem_chk_admin' ); // check user role to load correct dashboard - add_action( 'admin_menu', 'wpmem_admin_options' ); // adds admin menu - add_action( 'user_register', 'wpmem_wp_reg_finalize' ); // handles wp native registration - add_action( 'login_enqueue_scripts', 'wpmem_wplogin_stylesheet' ); // styles the native registration - add_action( 'wp_print_styles', 'wpmem_enqueue_style' ); // load the stylesheet if using the new forms - - // Add filters. - add_filter( 'the_content', array( $this, 'do_securify' ), 1, 1 ); - add_filter( 'allow_password_reset', 'wpmem_no_reset' ); // no password reset for non-activated users - add_filter( 'register_form', 'wpmem_wp_register_form' ); // adds fields to the default wp registration - add_filter( 'registration_errors', 'wpmem_wp_reg_validate', 10, 3 ); // native registration validation - add_filter( 'comments_open', 'wpmem_securify_comments', 20, 1 ); // securifies the comments - - // If registration is moderated, check for activation (blocks backend login by non-activated users). - if ( $this->mod_reg == 1 ) { - add_filter( 'authenticate', 'wpmem_check_activated', 99, 3 ); - } - - /** - * Fires after action and filter hooks load (for adding/removing hooks). - * - * @since 3.0.0 - */ - do_action( 'wpmem_load_hooks' ); - } - - /** - * Load drop-ins. - * - * @since 3.0.0 - * - * @todo This is experimental. The function and its operation is subject to change. - */ - function load_dropins() { - - /** - * Filters the dropin file folder. - * - * @since 3.0.0 - * - * @param string $folder The dropin file folder. - */ - $folder = apply_filters( 'wpmem_dropin_folder', WP_PLUGIN_DIR . '/wp-members-dropins/' ); - - // Load any drop-ins. - foreach ( glob( $folder . '*.php' ) as $filename ) { - include_once( $filename ); - } - - /** - * Fires after dropins load (for adding additional dropings). - * - * @since 3.0.0 - */ - do_action( 'wpmem_load_dropins' ); - } - - /** - * Loads pre-3.0 constants (included primarily for add-on compatibility). - * - * @since 3.0 - */ - function load_constants() { - ( ! defined( 'WPMEM_BLOCK_POSTS' ) ) ? define( 'WPMEM_BLOCK_POSTS', $this->block['post'] ) : ''; - ( ! defined( 'WPMEM_BLOCK_PAGES' ) ) ? define( 'WPMEM_BLOCK_PAGES', $this->block['page'] ) : ''; - ( ! defined( 'WPMEM_SHOW_EXCERPT' ) ) ? define( 'WPMEM_SHOW_EXCERPT', $this->show_excerpt['post'] ) : ''; - ( ! defined( 'WPMEM_NOTIFY_ADMIN' ) ) ? define( 'WPMEM_NOTIFY_ADMIN', $this->notify ) : ''; - ( ! defined( 'WPMEM_MOD_REG' ) ) ? define( 'WPMEM_MOD_REG', $this->mod_reg ) : ''; - ( ! defined( 'WPMEM_CAPTCHA' ) ) ? define( 'WPMEM_CAPTCHA', $this->captcha ) : ''; - ( ! defined( 'WPMEM_NO_REG' ) ) ? define( 'WPMEM_NO_REG', ( -1 * $this->show_reg['post'] ) ) : ''; - ( ! defined( 'WPMEM_USE_EXP' ) ) ? define( 'WPMEM_USE_EXP', $this->use_exp ) : ''; - ( ! defined( 'WPMEM_USE_TRL' ) ) ? define( 'WPMEM_USE_TRL', $this->use_trial ) : ''; - ( ! defined( 'WPMEM_IGNORE_WARN' ) ) ? define( 'WPMEM_IGNORE_WARN', $this->warnings ) : ''; - - ( ! defined( 'WPMEM_MSURL' ) ) ? define( 'WPMEM_MSURL', $this->user_pages['profile'] ) : ''; - ( ! defined( 'WPMEM_REGURL' ) ) ? define( 'WPMEM_REGURL', $this->user_pages['register'] ) : ''; - ( ! defined( 'WPMEM_LOGURL' ) ) ? define( 'WPMEM_LOGURL', $this->user_pages['login'] ) : ''; - - define( 'WPMEM_CSSURL', $this->cssurl ); - } - - /** - * Gets the requested action. - * - * @since 3.0.0 - */ - function get_action() { - - // Get the action being done (if any). - $this->action = ( isset( $_REQUEST['a'] ) ) ? trim( $_REQUEST['a'] ) : ''; - - // Get the regchk value (if any). - $this->regchk = $this->get_regchk( $this->action ); - } - - /** - * Gets the regchk value. - * - * @since 3.0.0 - * - * @param string $action The action being done. - * @return string The regchk value. - * - * @todo Describe regchk. - */ - function get_regchk( $action ) { - - switch ( $action ) { - - case 'login': - $regchk = wpmem_login(); - break; - - case 'logout': - $regchk = wpmem_logout(); - break; - - case 'pwdchange': - $regchk = wpmem_change_password(); - break; - - case 'pwdreset': - $regchk = wpmem_reset_password(); - break; - - case 'register': - case 'update': - require_once( WPMEM_PATH . 'inc/register.php' ); - $regchk = wpmem_registration( $action ); - break; - - default: - $regchk = ( isset( $regchk ) ) ? $regchk : ''; - break; - } - - /** - * Filter wpmem_regchk. - * - * The value of regchk is determined by functions that may be run in the get_regchk function. - * This value determines what happens in the wpmem_securify() function. - * - * @since 2.9.0 - * - * @param string $this->regchk The value of wpmem_regchk. - * @param string $this->action The $wpmem_a action. - */ - $regchk = apply_filters( 'wpmem_regchk', $regchk, $action ); - - // @todo Remove legacy global variable. - global $wpmem_regchk; - $wpmem_regchk = $regchk; - - return $regchk; - } - - /** - * Determines if content should be blocked. - * - * This function was originally stand alone in the core file and - * was moved to the WP_Members class in 3.0. - * - * @since 3.0 - * - * @return bool $block true|false - */ - function is_blocked() { - - global $post; - - // Backward compatibility for old block/unblock meta. - $meta = get_post_meta( $post->ID, '_wpmem_block', true ); - if ( ! $meta ) { - // Check for old meta. - $old_block = get_post_meta( $post->ID, 'block', true ); - $old_unblock = get_post_meta( $post->ID, 'unblock', true ); - $meta = ( $old_block ) ? 1 : ( ( $old_unblock ) ? 0 : $meta ); - } - - // Setup defaults. - $defaults = array( - 'post_id' => $post->ID, - 'post_type' => $post->post_type, - 'block' => ( isset( $this->block[ $post->post_type ] ) && $this->block[ $post->post_type ] == 1 ) ? true : false, - 'block_meta' => $meta, // @todo get_post_meta( $post->ID, '_wpmem_block', true ), - 'block_type' => ( $post->post_type == 'post' ) ? $this->block['post'] : ( ( $post->post_type == 'page' ) ? $this->block['page'] : 0 ), - ); - - /** - * Filter the block arguments. - * - * @since 2.9.8 - * - * @param array $args Null. - * @param array $defaults Although you are not filtering the defaults, knowing what they are can assist developing more powerful functions. - */ - $args = apply_filters( 'wpmem_block_args', '', $defaults ); - - // Merge $args with defaults. - $args = ( wp_parse_args( $args, $defaults ) ); - - if ( is_single() || is_page() ) { - switch( $args['block_type'] ) { - case 1: // If content is blocked by default. - $args['block'] = ( $args['block_meta'] == '0' ) ? false : $args['block']; - break; - case 0 : // If content is unblocked by default. - $args['block'] = ( $args['block_meta'] == '1' ) ? true : $args['block']; - break; - } - } else { - - $args['block'] = false; - - } - - /** - * Filter the block boolean. - * - * @since 2.7.5 - * - * @param bool $args['block'] - * @param array $args - */ - return apply_filters( 'wpmem_block', $args['block'], $args ); - } - - /** - * The Securify Content Filter. - * - * This is the primary function that picks up where get_action() leaves off. - * Determines whether content is shown or hidden for both post and pages. - * - * @since 3.0 - * - * @global string $wpmem_themsg Contains messages to be output. - * @global string $wpmem_captcha_err Contains error message for reCAPTCHA. - * @global object $post The post object. - * @param string $content - * @return string $content - */ - function do_securify( $content = null ) { - - global $wpmem_themsg, $post; - - $content = ( is_single() || is_page() ) ? $content : wpmem_do_excerpt( $content ); - - if ( ( ! wpmem_test_shortcode( $content, 'wp-members' ) ) ) { - - if ( $this->regchk == "captcha" ) { - global $wpmem_captcha_err; - $wpmem_themsg = __( 'There was an error with the CAPTCHA form.' ) . '', - 'message' => __( 'You entered an invalid username or password.', 'wp-members' ), - 'p_after' => '
', - 'link' => '' . __( 'Click here to continue.', 'wp-members' ) . '', - ); - - /** - * Filter the login failed dialog arguments. - * - * @since 2.9.0 - * - * @param array An array of arguments to merge with defaults. - */ - $args = apply_filters( 'wpmem_login_failed_args', '' ); - - // Merge $args with defaults. - $args = wp_parse_args( $args, $defaults ); - - $str = $args['div_before'] - . $args['heading_before'] . $args['heading'] . $args['heading_after'] - . $args['p_before'] . $args['message'] . $args['p_after'] - . $args['p_before'] . $args['link'] . $args['p_after'] - . $args['div_after']; - - /** - * Filter the login failed dialog. - * - * @since ?.? - * - * @param string $str The login failed dialog. - */ - $str = apply_filters( 'wpmem_login_failed', $str ); - - return $str; -} -endif; - - -if ( ! function_exists( 'wpmem_inc_regmessage' ) ): -/** - * Message Dialog. - * - * Returns various dialogs and error messages. - * - * @since 1.8 - * - * @param string $toggle Error message toggle to look for specific error messages. - * @param string $msg A message that has no toggle that is passed directly to the function. - * @return string $str The final HTML for the message. - */ -function wpmem_inc_regmessage( $toggle, $msg = '' ) { - - // defaults - $defaults = array( - 'div_before' => '', - 'p_after' => '
', - 'toggles' => array( - 'user', - 'email', - 'success', - 'editsuccess', - 'pwdchangerr', - 'pwdchangesuccess', - 'pwdreseterr', - 'pwdresetsuccess', - ), - ); - - /** - * Filter the message arguments. - * - * @since 2.9.0 - * - * @param array An array of arguments to merge with defaults. - */ - $args = apply_filters( 'wpmem_msg_args', '' ); - - // Get dialogs set in the db. - $dialogs = get_option( 'wpmembers_dialogs' ); - - for ( $r = 0; $r < count( $defaults['toggles'] ); $r++ ) { - if ( $toggle == $defaults['toggles'][$r] ) { - $msg = __( stripslashes( $dialogs[$r+1] ), 'wp-members' ); - break; - } - } - $defaults['msg'] = $msg; - - /** - * Filter the message array - * - * @since 2.9.2 - * - * @param array $defaults An array of the defaults. - * @param string $toggle The toggle that we are on, if any. - */ - $defaults = apply_filters( 'wpmem_msg_dialog_arr', $defaults, $toggle ); - - // Merge $args with defaults. - $args = wp_parse_args( $args, $defaults ); - - $str = $args['div_before'] . $args['p_before'] . stripslashes( $msg ) . $args['p_after'] . $args['div_after']; - - /** - * Filter the message. - * - * @since ?.? - * - * @param string $str The message. - */ - return apply_filters( 'wpmem_msg_dialog', $str ); - -} -endif; - - -if ( ! function_exists( 'wpmem_inc_memberlinks' ) ): -/** - * Member Links Dialog. - * - * Outputs the links used on the members area. - * - * @since 2.0 - * - * @param string $page - * @return string $str - */ -function wpmem_inc_memberlinks( $page = 'members' ) { - - global $user_login, $wpmem; - - $link = wpmem_chk_qstr(); - - /** - * Filter the log out link. - * - * @since 2.8.3 - * - * @param string $link The default logout link. - */ - $logout = apply_filters( 'wpmem_logout_link', $link . 'a=logout' ); - - switch ( $page ) { - - case 'members': - $str = '' . sprintf( __( 'You are logged in as %s', 'wp-members' ), $user_login ) . '
-', - 'wrapper_after' => '
', - 'user_login' => $user_login, - 'welcome' => __( 'You are logged in as %s', 'wp-members' ), - 'logout_text' => __( 'Click to log out', 'wp-members' ), - 'logout_link' => '%s', - 'separator' => '', - 'wrapper_after' => '
', - 'user_login' => $user_login, - 'welcome' => __( 'You are logged in as %s', 'wp-members' ), - 'logout_text' => __( 'click to log out', 'wp-members' ), - 'logout_link' => '%s', - 'separator' => ' | ', - ); - /** - * Filter the status message parts. - * - * @since 2.9.9 - * - * @param array $args. - */ - $args = apply_filters( 'wpmem_status_msg_args', $args ); - - // Assemble the message string. - $str = $args['wrapper_before'] - . sprintf( $args['welcome'], $args['user_login'] ) - . $args['separator'] - . sprintf( $args['logout_link'], $args['logout_text'] ) - . $args['wrapper_after']; - break; - - } - - return $str; -} -endif; - - -if ( ! function_exists( 'wpmem_page_pwd_reset' ) ): -/** - * Password reset forms. - * - * This function creates both password reset and forgotten - * password forms for page=password shortcode. - * - * @since 2.7.6 - * - * @param string $wpmem_regchk - * @param string $content - * @return string $content - */ -function wpmem_page_pwd_reset( $wpmem_regchk, $content ) { - - if ( is_user_logged_in() ) { - - switch ( $wpmem_regchk ) { - - case "pwdchangempty": - $content = wpmem_inc_regmessage( $wpmem_regchk, __( 'Password fields cannot be empty', 'wp-members' ) ); - $content = $content . wpmem_inc_changepassword(); - break; - - case "pwdchangerr": - $content = wpmem_inc_regmessage( $wpmem_regchk ); - $content = $content . wpmem_inc_changepassword(); - break; - - case "pwdchangesuccess": - $content = $content . wpmem_inc_regmessage( $wpmem_regchk ); - break; - - default: - $content = $content . wpmem_inc_changepassword(); - break; - } - - } else { - - switch( $wpmem_regchk ) { - - case "pwdreseterr": - $content = $content - . wpmem_inc_regmessage( $wpmem_regchk ) - . wpmem_inc_resetpassword(); - $wpmem_regchk = ''; // Clear regchk. - break; - - case "pwdresetsuccess": - $content = $content . wpmem_inc_regmessage( $wpmem_regchk ); - $wpmem_regchk = ''; // Clear regchk. - break; - - default: - $content = $content . wpmem_inc_resetpassword(); - break; - } - - } - - return $content; - -} -endif; - - -if ( ! function_exists( 'wpmem_page_user_edit' ) ): -/** - * Creates a user edit page. - * - * @since 2.7.6 - * - * @param string $wpmem_regchk - * @param string $content - * @return string $content - */ -function wpmem_page_user_edit( $wpmem_regchk, $content ) { - - global $wpmem_a, $wpmem_themsg; - /** - * Filter the default User Edit heading for shortcode. - * - * @since 2.7.6 - * - * @param string The default edit mode heading. - */ - $heading = apply_filters( 'wpmem_user_edit_heading', __( 'Edit Your Information', 'wp-members' ) ); - - if ( $wpmem_a == "update") { $content.= wpmem_inc_regmessage( $wpmem_regchk, $wpmem_themsg ); } - $content = $content . wpmem_inc_registration( 'edit', $heading ); - - return $content; -} -endif; - -/** End of File **/ \ No newline at end of file +user_login ); - $arr['user_email'] = stripslashes( $user->user_email ); - $arr['blogname'] = wp_specialchars_decode( get_option ( 'blogname' ), ENT_QUOTES ); - $arr['exp_type'] = ( $wpmem->use_exp == 1 ) ? get_user_meta( $user_id, 'exp_type', true ) : ''; - $arr['exp_date'] = ( $wpmem->use_exp == 1 ) ? get_user_meta( $user_id, 'expires', true ) : ''; - $arr['wpmem_msurl'] = $wpmem->user_pages['profile']; - $arr['reg_link'] = esc_url( get_user_meta( $user_id, 'wpmem_reg_url', true ) ); - $arr['do_shortcodes'] = true; - $arr['add_footer'] = true; - $arr['disable'] = false; - - // Apply filters (if set) for the sending email address. - global $wpmem_mail_from, $wpmem_mail_from_name; - add_filter( 'wp_mail_from', 'wpmem_mail_from' ); - add_filter( 'wp_mail_from_name', 'wpmem_mail_from_name' ); - $default_header = ( $wpmem_mail_from && $wpmem_mail_from_name ) ? 'From: ' . $wpmem_mail_from_name . ' <' . $wpmem_mail_from . '>' : ''; - - /** - * Filters the email headers. - * - * @since 2.7.4 - * - * @param mixed $default_header The email headers. - * @param string $arr['toggle'] Toggle to determine what email is being generated (newreg|newmod|appmod|repass|admin). - */ - $arr['headers'] = apply_filters( 'wpmem_email_headers', $default_header, $arr['toggle'] ); - - // Handle backward compatibility for customizations that may call the email function directly. - if ( ! $wpmem_fields ) { - $wpmem_fields = $wpmem->fields; //get_option( 'wpmembers_fields' ); - } - - /** - * Filter the email. - * - * This is a new and more powerful filter than was previously available for - * emails. This new filter passes the email subject, body, user ID, and several - * other settings and parameters for use in the filter function. It also passes - * an array of the WP-Members fields, and an array of the posted registration - * data from the register function. - * - * @since 2.9.7 - * - * @param array $arr An array containing email body, subject, user id, and additional settings. - * @param array $wpmem_fields An array of the WP-Members fields. - * @param array $field_data An array of the posted registration data. - */ - $arr = apply_filters( 'wpmem_email_filter', $arr, $wpmem_fields, $field_data ); - - //If emails are not disabled, continue the email process. - if ( ! $arr['disable'] ) { - - // Legacy email filters applied. - switch ( $arr['toggle'] ) { - - case 'newreg': - // This is a new registration. - /** - * Filters the new registration email. - * - * @since 2.7.4 - * - * @param string $arr['body'] The body content of the new registration email. - */ - $arr['body'] = apply_filters( 'wpmem_email_newreg', $arr['body'] ); - break; - - case 'newmod': - // Registration is moderated. - /** - * Filters the new moderated registration email. - * - * @since 2.7.4 - * - * @param string $arr['body'] The body content of the moderated registration email. - */ - $arr['body'] = apply_filters( 'wpmem_email_newmod', $arr['body'] ); - break; - - case 'appmod': - // Registration is moderated, user is approved. - /** - * Filters the reset password email. - * - * @since 2.7.4 - * - * @param string $arr['body'] The body content of the reset password email. - */ - $arr['body'] = apply_filters( 'wpmem_email_appmod', $arr['body'] ); - break; - - case 'repass': - // This is a password reset. - /** - * Filters the approved registration email. - * - * @since 2.7.4 - * - * @param string $arr['body'] The body content of the approved registration email. - */ - $arr['body'] = apply_filters( 'wpmem_email_repass', $arr['body'] ); - break; - - } - - // Get the email footer if needed. - $foot = ( $arr['add_footer'] ) ? get_option ( 'wpmembers_email_footer' ) : ''; - - // If doing shortcode replacements. - if ( $arr['do_shortcodes'] ) { - - // Setup default shortcodes. - $shortcd = array( - '[blogname]', - '[username]', - '[password]', - '[reglink]', - '[members-area]', - '[exp-type]', - '[exp-data]', - ); - - // Replacement values for default shortcodes. - $replace = array( - $arr['blogname'], - $arr['user_login'], - $password, - $arr['reg_link'], - $arr['wpmem_msurl'], - $arr['exp_type'], - $arr['exp_date'], - ); - - // Setup custom field shortcodes. - foreach ( $wpmem_fields as $field ) { - $shortcd[] = '[' . $field[2] . ']'; - $replace[] = get_user_meta( $user_id, $field[2], true ); - } - - // Do replacements for subject, body, and footer shortcodes. - $arr['subj'] = str_replace( $shortcd, $replace, $arr['subj'] ); - $arr['body'] = str_replace( $shortcd, $replace, $arr['body'] ); - $foot = ( $arr['add_footer'] ) ? str_replace( $shortcd, $replace, $foot ) : ''; - } - - // Append footer if needed. - $arr['body'] = ( $arr['add_footer'] ) ? $arr['body'] . "\r\n" . $foot : $arr['body']; - - // Send the message. - wp_mail( $arr['user_email'], stripslashes( $arr['subj'] ), stripslashes( $arr['body'] ), $arr['headers'] ); - - } - - return; - -} -endif; - - -if ( ! function_exists( 'wpmem_notify_admin' ) ): -/** - * Builds the email for admin notification of new user registration. - * - * @since 2.3 - * - * @uses wp_mail - * - * @param int $user_id - * @param array $wpmem_fields - * @param array $field_data - */ -function wpmem_notify_admin( $user_id, $wpmem_fields, $field_data = null ) { - - global $wpmem; - - // WP default user fields. - $wp_user_fields = array( - 'user_login', - 'user_nicename', - 'user_url', - 'user_registered', - 'display_name', - 'first_name', - 'last_name', - 'nickname', - 'description', - ); - - // Get the user data. - $user = get_userdata( $user_id ); - - // Get the email stored values. - $arr = get_option( 'wpmembers_email_notify' ); - - // Userdata for default shortcodes. - $arr['user_id'] = $user_id; - $arr['user_login'] = stripslashes( $user->user_login ); - $arr['user_email'] = stripslashes( $user->user_email ); - $arr['blogname'] = wp_specialchars_decode( get_option ( 'blogname' ), ENT_QUOTES ); - $arr['user_ip'] = get_user_meta( $user_id, 'wpmem_reg_ip', true ); - $arr['reg_link'] = esc_url( get_user_meta( $user_id, 'wpmem_reg_url', true ) ); - $arr['act_link'] = get_bloginfo ( 'wpurl' ) . "/wp-admin/user-edit.php?user_id=".$user_id; - $arr['exp_type'] = ( $wpmem->use_exp == 1 ) ? get_user_meta( $user_id, 'exp_type', true ) : ''; - $arr['exp_date'] = ( $wpmem->use_exp == 1 ) ? get_user_meta( $user_id, 'expires', true ) : ''; - $arr['do_shortcodes'] = true; - $arr['add_footer'] = true; - $arr['disable'] = false; - - // Builds an array of the user data fields. - $field_arr = array(); - foreach ( $wpmem_fields as $meta ) { - if ( $meta[4] == 'y' ) { - $name = $meta[1]; - if ( ! in_array( $meta[2], wpmem_get_excluded_meta( 'email' ) ) ) { - if ( ( $meta[2] != 'user_email' ) && ( $meta[2] != 'password' ) ) { - if ( $meta[2] == 'user_url' ) { - $val = esc_url( $user->user_url ); - } elseif ( in_array( $meta[2], $wp_user_fields ) ) { - $val = esc_html( $user->$meta[2] ); - } else { - $val = esc_html( get_user_meta( $user_id, $meta[2], true ) ); - } - $field_arr[ $name ] = $val; - } - } - } - } - $arr['field_arr'] = $field_arr; - - // Apply filters (if set) for the sending email address. - global $wpmem_mail_from, $wpmem_mail_from_name; - add_filter( 'wp_mail_from', 'wpmem_mail_from' ); - add_filter( 'wp_mail_from_name', 'wpmem_mail_from_name' ); - $default_header = ( $wpmem_mail_from && $wpmem_mail_from_name ) ? 'From: ' . $wpmem_mail_from_name . ' <' . $wpmem_mail_from . '>' : ''; - - /** - * Filters the email headers. - * - * @since 2.7.4 - * - * @param mixed $default_header The email headers (default = null). - * @param string $toggle Toggle to determine what email is being generated (newreg|newmod|appmod|repass|admin). - */ - $arr['headers'] = apply_filters( 'wpmem_email_headers', $default_header, 'admin' ); - - // Handle backward compatibility for customizations that may call the email function directly. - if ( ! $wpmem_fields ) { - $wpmem_fields = $wpmem->fields; //get_option( 'wpmembers_fields' ); - } - - /** - * Filters the address the admin notification is sent to. - * - * @since 2.7.5 - * - * @param string The email address of the admin to send to. - */ - $arr['admin_email'] = apply_filters( 'wpmem_notify_addr', get_option( 'admin_email' ) ); - - /** - * Filter the email. - * - * This is a new and more powerful filter than was previously available for - * emails. This new filter passes the email subject, body, user ID, and several - * other settings and parameters for use in the filter function. It also passes - * an array of the WP-Members fields, and an array of the posted registration - * data from the register function. - * - * @since 2.9.8 - * - * @param array $arr An array containing email body, subject, user id, and additional settings. - * @param array $wpmem_fields An array of the WP-Members fields. - * @param array $arr['field_arr'] An array of the posted registration data. - */ - $arr = apply_filters( 'wpmem_notify_filter', $arr, $wpmem_fields, $field_data ); - - // If emails are not disabled, continue the email process. - if ( ! $arr['disable'] ) { - - // Split field_arr into field_str. - $field_str = ''; - foreach ( $arr['field_arr'] as $key => $val ) { - $field_str.= $key . ': ' . $val . "\r\n"; - } - - // Get the email footer if needed. - $foot = ( $arr['add_footer'] ) ? get_option ( 'wpmembers_email_footer' ) : ''; - - // If doing shortcode replacements. - if ( $arr['do_shortcodes'] ) { - - // Setup default shortcodes. - $shortcd = array( - '[blogname]', - '[username]', - '[email]', - '[reglink]', - '[exp-type]', - '[exp-data]', - '[user-ip]', - '[activate-user]', - '[fields]', - ); - - // Replacement values for default shortcodes. - $replace = array( - $arr['blogname'], - $arr['user_login'], - $arr['user_email'], - $arr['reg_link'], - $arr['exp_type'], - $arr['exp_date'], - $arr['user_ip'], - $arr['act_link'], - $field_str, - ); - - // Create the custom field shortcodes. - foreach ( $wpmem_fields as $field ) { - $shortcd[] = '[' . $field[2] . ']'; - $replace[] = get_user_meta( $user_id, $field[2], true ); - } - - // Get the subject, body, and footer shortcodes. - $arr['subj'] = str_replace( $shortcd, $replace, $arr['subj'] ); - $arr['body'] = str_replace( $shortcd, $replace, $arr['body'] ); - $foot = ( $arr['add_footer'] ) ? str_replace( $shortcd, $replace, $foot ) : ''; - } - - // Append footer if needed. - $arr['body'] = ( $arr['add_footer'] ) ? $arr['body'] . "\r\n" . $foot : $arr['body']; - - /** - * Filters the admin notification email. - * - * @since 2.8.2 - * - * @param string $arr['body'] The admin notification email body. - */ - $arr['body'] = apply_filters( 'wpmem_email_notify', $arr['body'] ); - - // Send the message. - wp_mail( $arr['admin_email'], stripslashes( $arr['subj'] ), stripslashes( $arr['body'] ), $arr['headers'] ); - } -} -endif; - - -/** - * Filters the wp_mail from address (if set). - * - * @since 2.7 - * - * @param string $email - * @return string $email - */ -function wpmem_mail_from( $email ) { - global $wpmem_mail_from; - $wpmem_mail_from = ( get_option( 'wpmembers_email_wpfrom' ) ) ? get_option( 'wpmembers_email_wpfrom' ) : $email; - return $wpmem_mail_from; -} - - -/** - * Filters the wp_mail from name (if set). - * - * @since 2.7 - * - * @param string $name - * @return string $name - */ -function wpmem_mail_from_name( $name ) { - global $wpmem_mail_from_name; - $wpmem_mail_from_name = ( get_option( 'wpmembers_email_wpname' ) ) ? stripslashes( get_option( 'wpmembers_email_wpname' ) ) : $name; - return $wpmem_mail_from_name; -} - -/** End of File **/ \ No newline at end of file +' . __( stripslashes( $arr[0] ), 'wp-members' ) . ''; - - /** - * Filter the post restricted message. - * - * @since 2.7.3 - * - * @param string $str The post restricted message. - */ - $str = apply_filters( 'wpmem_restricted_msg', $str ); - - } - } - - // create the default inputs - $default_inputs = array( - array( - 'name' => __( 'Username' ), - 'type' => 'text', - 'tag' => 'log', - 'class' => 'username', - 'div' => 'div_text', - ), - array( - 'name' => __( 'Password' ), - 'type' => 'password', - 'tag' => 'pwd', - 'class' => 'password', - 'div' => 'div_text', - ), - ); - - /** - * Filter the array of login form fields. - * - * @since 2.9.0 - * - * @param array $default_inputs An array matching the elements used by default. - */ - $default_inputs = apply_filters( 'wpmem_inc_login_inputs', $default_inputs ); - - $defaults = array( - 'heading' => __( 'Existing Users Log In', 'wp-members' ), - 'action' => 'login', - 'button_text' => __( 'Log In' ), - 'inputs' => $default_inputs, - 'redirect_to' => $redirect_to, - ); - - /** - * Filter the arguments to override login form defaults. - * - * @since 2.9.0 - * - * @param array $args An array of arguments to use. Default null. - */ - $args = apply_filters( 'wpmem_inc_login_args', '' ); - - $arr = wp_parse_args( $args, $defaults ); - - $str = ( $show == 'show' ) ? $str . wpmem_login_form( $page, $arr ) : $str; - - return $str; -} -endif; - - -if ( ! function_exists( 'wpmem_inc_changepassword' ) ): -/** - * Change Password Dialog. - * - * Loads the form for changing password. - * - * @since 2.0 - * - * @uses wpmem_login_form() - * - * @return string $str the generated html for the change password form. - */ -function wpmem_inc_changepassword() { - - // create the default inputs - $default_inputs = array( - array( - 'name' => __( 'New password' ), - 'type' => 'password', - 'tag' => 'pass1', - 'class' => 'password', - 'div' => 'div_text', - ), - array( - 'name' => __( 'Confirm new password' ), - 'type' => 'password', - 'tag' => 'pass2', - 'class' => 'password', - 'div' => 'div_text', - ), - ); - - /** - * Filter the array of change password form fields. - * - * @since 2.9.0 - * - * @param array $default_inputs An array matching the elements used by default. - */ - $default_inputs = apply_filters( 'wpmem_inc_changepassword_inputs', $default_inputs ); - - $defaults = array( - 'heading' => __('Change Password', 'wp-members'), - 'action' => 'pwdchange', - 'button_text' => __('Update Password', 'wp-members'), - 'inputs' => $default_inputs, - ); - - /** - * Filter the arguments to override change password form defaults. - * - * @since 2.9.0 - * - * @param array $args An array of arguments to use. Default null. - */ - $args = apply_filters( 'wpmem_inc_changepassword_args', '' ); - - $arr = wp_parse_args( $args, $defaults ); - - $str = wpmem_login_form( 'page', $arr ); - - return $str; -} -endif; - - -if ( ! function_exists( 'wpmem_inc_resetpassword' ) ): -/** - * Reset Password Dialog. - * - * Loads the form for resetting password. - * - * @since 2.1 - * - * @uses wpmem_login_form() - * - * @return string $str the generated html fo the reset password form. - */ -function wpmem_inc_resetpassword() -{ - /** create the default inputs **/ - $default_inputs = array( - array( - 'name' => __( 'Username' ), - 'type' => 'text', - 'tag' => 'user', - 'class' => 'username', - 'div' => 'div_text', - ), - array( - 'name' => __( 'Email' ), - 'type' => 'text', - 'tag' => 'email', - 'class' => 'password', - 'div' => 'div_text', - ), - ); - - /** - * Filter the array of reset password form fields. - * - * @since 2.9.0 - * - * @param array $default_inputs An array matching the elements used by default. - */ - $default_inputs = apply_filters( 'wpmem_inc_resetpassword_inputs', $default_inputs ); - - $defaults = array( - 'heading' => __( 'Reset Forgotten Password', 'wp-members' ), - 'action' => 'pwdreset', - 'button_text' => __( 'Reset Password' ), - 'inputs' => $default_inputs, - ); - - /** - * Filter the arguments to override reset password form defaults. - * - * @since 2.9.0 - * - * @param array $args An array of arguments to use. Default null. - */ - $args = apply_filters( 'wpmem_inc_resetpassword_args', '' ); - - $arr = wp_parse_args( $args, $defaults ); - - $str = wpmem_login_form( 'page', $arr ); - - return $str; -} -endif; - - -if ( ! function_exists( 'wpmem_login_form' ) ): -/** - * Login Form Dialog. - * - * Builds the form used for login, change password, and reset password. - * - * @since 2.5.1 - * - * @param string $page - * @param array $arr The elements needed to generate the form (login|reset password|forgotten password). - * @return string $form The HTML for the form as a string. - */ -function wpmem_login_form( $page, $arr ) { - - global $wpmem; - - // extract the arguments array - extract( $arr ); - - // set up default wrappers - $defaults = array( - - // wrappers - 'heading_before' => '', - 'fieldset_before' => '', - 'main_div_before' => '' . $val . '
'; - $field_before = ( $wrap_inputs ) ? '', - 'error_after' => '
', - 'fieldset_before' => '', - 'inputs_before' => '' . sprintf( __( 'You are logged in as %s', 'wp-members' ), $user_login ) . '
- ' . __( 'click here to log out', 'wp-members' ) . '
| - | '; - - $val = get_user_meta( $user_id, $meta[2], true ); - if ( $meta[3] == 'checkbox' || $meta[3] == 'select' ) { - $valtochk = $val; - $val = $meta[7]; - } - $show_field.= wpmem_create_formfield( $meta[2], $meta[3], $val, $valtochk ) . ' - | -
|---|
'; - $label = '
'; - - } else { - - $row_before = ''; - $label = '
'; - - } - - // if the row is set to display, add the row to the form array - $rows[$field[2]] = array( - 'type' => $field[3], - 'row_before' => $row_before, - 'label' => $label, - 'field' => $input, - 'row_after' => $row_after, - ); - } - } - - /** - * Filter the native registration form rows. - * - * @since 2.9.3. - * - * @param array $rows The custom rows added to the form. - */ - $rows = apply_filters( 'wpmem_native_form_rows', $rows ); - - foreach ( $rows as $row_item ) { - if ( $row_item['type'] == 'checkbox' ) { - echo $row_item['row_before'] . $row_item['field'] . $row_item['label'] . $row_item['row_after']; - } else { - echo $row_item['row_before'] . $row_item['label'] . $row_item['field'] . $row_item['row_after']; - } - } - -} - - -/** - * Appends WP-Members registration fields to Users > Add New User screen. - * - * @since 2.9.0 - */ -function wpmem_do_wp_newuser_form() { - - global $wpmem; - echo '| - - | -'; - - // determine the field type and generate accordingly. - - switch ( $field[3] ) { - - case( 'select' ): - $val = ( isset( $_POST[ $field[2] ] ) ) ? $_POST[ $field[2] ] : ''; - echo wpmem_create_formfield( $field[2], $field[3], $field[7], $val ); - break; - - case( 'textarea' ): - echo ''; - break; - - case( 'checkbox' ): - $val = ( isset( $_POST[ $field[2] ] ) ) ? $_POST[ $field[2] ] : ''; - $val = ( ! $_POST && $field[8] == 'y' ) ? $field[7] : $val; - echo wpmem_create_formfield( $field[2], $field[3], $field[7], $val ); - break; - - default: - echo ''; - break; - } - - echo ' | -
|---|
'; print_r( $wpmem ); exit();
+ if ( $wpmem->admin_notices ) {
+ foreach ( $wpmem->admin_notices as $key => $value ) {
+ echo '
+ ' . $value['notice'] . '
+ ';
+
+ }
+ }
+ }
+
+ /**
+ * Display admin tabs.
+ *
+ * @since 3.1.0
+ *
+ * @param string $current The current tab being displayed (default: options).
+ */
+ function do_tabs( $current = 'options' ) {
+
+ /**
+ * Filter the admin tabs for the plugin settings page.
+ *
+ * @since 2.8.0
+ *
+ * @param array $tabs An array of the tabs to be displayed on the plugin settings page.
+ */
+ $this->tabs = apply_filters( 'wpmem_admin_tabs', $this->tabs );
+
+ $links = array();
+ foreach ( $this->tabs as $tab => $name ) {
+ $link_args = array( 'page' => 'wpmem-settings', 'tab' => $tab );
+ $link = add_query_arg( $link_args, admin_url( 'options-general.php' ) );
+ $class = ( $tab == $current ) ? 'nav-tab nav-tab-active' : 'nav-tab';
+ $links[] = sprintf( '%s', $class, $link, $name );
+ }
+
+ echo '';
+ foreach ( $links as $link ) {
+ echo $link;
+ }
+ echo '
';
+ }
+
+ /**
+ * Handles custom email settings.
+ *
+ * @since 3.1.0
+ *
+ * @param array $args Settings array for the email.
+ * @return array $args
+ */
+ function add_email( $args ) {
+
+ // Get saved settings.
+ $settings = get_option( $args['name'] );
+
+ $defaults = array(
+ 'name' => $args['name'],
+ 'heading' => __( 'Custom email', 'wp-members' ),
+ 'subject_label' => __( 'Subject', 'wp-members' ),
+ 'subject_input' => $args['name'] . '_subject',
+ 'subject_value' => ( $settings ) ? $settings['subj'] : __( 'Subject', 'wp-members' ),
+ 'body_label' => __( 'Body', 'wp-members' ),
+ 'body_input' => $args['name'] . '_body',
+ 'body_value' => ( $settings ) ? $settings['body'] : __( 'Your custom email message content.', 'wp-members' ),
+ );
+
+ // Merge args with settings.
+ $args = wp_parse_args( $args, $defaults );
+
+ $this->emails[ $args['name'] ] = $args;
+
+ return $args;
+ }
+
+ /**
+ * Adds dialogs to the Dialogs tab.
+ *
+ * @since 3.1.1
+ *
+ * @param array $args Settings array for the dialog.
+ */
+ function do_dialog_input( $args ) { ?>
+
+
+
+ dialogs as $dialog ) {
+ if ( isset( $_POST[ $dialog['name'] . '_dialog' ] ) ) {
+ $settings[ $dialog['name'] ] = wp_kses( $_POST[ $dialog['name'] . '_dialog' ], 'post' );
+ }
+ }
+ update_option( 'wpmembers_dialogs', $settings, true );
+ // Refresh settings
+ $this->default_dialogs();
+ return;
+ }
+
+ /**
+ * Handles custom dialog settings.
+ *
+ * @since 3.1.1
+ *
+ * @param array $args Settings array for the dialog.
+ * @return array $args
+ */
+ function add_dialog( $args ) {
+ global $wpmem;
+ if ( is_array( $args ) && isset( $args['label'] ) ) {
+ $defaults = array(
+ 'name' => $args['name'],
+ 'label' => $args['label'],
+ //'input' => $args['name'] . '_dialog',
+ 'value' => $args['value'],
+ //'value' => ( $args['value'] ) ? $args['value'] : wpmem_get_text( $key ),
+ );
+
+ // Merge args with settings.
+ $args = wp_parse_args( $args, $defaults );
+
+ $this->dialogs[ $args['name'] ] = $args;
+ }
+
+ //return $args;
+ }
+
+ /**
+ * Settings for default tabs.
+ *
+ * @since 3.1.0
+ */
+ function default_tabs() {
+ $this->tabs = array(
+ 'options' => 'WP-Members ' . __( 'Options', 'wp-members' ),
+ 'fields' => __( 'Fields', 'wp-members' ),
+ 'dialogs' => __( 'Dialogs', 'wp-members' ),
+ 'emails' => __( 'Emails', 'wp-members' ),
+ );
+ }
+
+ /**
+ * Settings for default emails.
+ *
+ * @since 3.1.0
+ */
+ function default_emails() {
+ global $wpmem;
+
+ if ( 0 == $wpmem->mod_reg ) {
+
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_newreg',
+ 'heading' => __( "New Registration", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_newreg_subj',
+ 'body_input' => 'wpmembers_email_newreg_body',
+ ) );
+
+ if ( 1 == $wpmem->act_link ) {
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_validated',
+ 'heading' => __( "User email validated", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_validated_subj',
+ 'body_input' => 'wpmembers_email_validated_body',
+ ) );
+ }
+
+ } else {
+
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_newmod',
+ 'heading' => __( "Registration is Moderated", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_newmod_subj',
+ 'body_input' => 'wpmembers_email_newmod_body',
+ ) );
+
+ if ( 1 == $wpmem->act_link ) {
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_validated',
+ 'heading' => __( "User email validated", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_validated_subj',
+ 'body_input' => 'wpmembers_email_validated_body',
+ ) );
+ }
+
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_appmod',
+ 'heading' => __( "Registration is Moderated, User is Approved", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_appmod_subj',
+ 'body_input' => 'wpmembers_email_appmod_body',
+ ) );
+ }
+
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_repass',
+ 'heading' => __( "Password Reset", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_repass_subj',
+ 'body_input' => 'wpmembers_email_repass_body',
+ ) );
+
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_getuser',
+ 'heading' => __( "Retrieve Username", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_getuser_subj',
+ 'body_input' => 'wpmembers_email_getuser_body',
+ ) );
+
+ if ( $wpmem->notify == 1 ) {
+ $this->add_email( array(
+ 'name' => 'wpmembers_email_notify',
+ 'heading' => __( "Admin Notification", 'wp-members' ),
+ 'subject_input' => 'wpmembers_email_notify_subj',
+ 'body_input' => 'wpmembers_email_notify_body',
+ ) );
+ }
+
+ }
+
+ /**
+ * Settings for default dialogs.
+ *
+ * @since 3.1.1
+ */
+ function default_dialogs() {
+ global $wpmem;
+
+ /**
+ * Filter the dialog array to add custom dialogs.
+ *
+ * @since 3.1.1
+ *
+ * @param array $dialog_array
+ */
+ $dialogs = apply_filters( 'wpmem_dialogs', get_option( 'wpmembers_dialogs' ) );
+
+ $dialog_labels = array(
+ 'restricted_msg' => __( "Restricted post (or page), displays above the login/registration form", 'wp-members' ),
+ 'user' => __( "Username is taken", 'wp-members' ),
+ 'email' => __( "Email is registered", 'wp-members' ),
+ 'success' => __( "Registration completed", 'wp-members' ),
+ 'editsuccess' => __( "User update", 'wp-members' ),
+ 'pwdchangerr' => __( "Passwords did not match", 'wp-members' ),
+ 'pwdchangesuccess' => __( "Password changes", 'wp-members' ),
+ 'pwdreseterr' => __( "Username or email do not exist when trying to reset forgotten password", 'wp-members' ),
+ 'pwdresetsuccess' => __( "Password reset", 'wp-members' ),
+ );
+
+ foreach ( $dialogs as $key => $val ) {
+ if ( array_key_exists( $key, $dialog_labels ) ) {
+ $dialogs[ $key ] = array(
+ 'name' => $key,
+ 'label' => $dialog_labels[ $key ],
+ 'value' => $dialogs[ $key ],
+ );
+ }
+ }
+
+ foreach ( $dialogs as $val ) {
+ $this->add_dialog( $val );
+ }
+ }
+
+
+ /**
+ * Get the current form.
+ *
+ * @since 3.1.2
+ *
+ * @todo Work on multi-form project, no current milestone.
+ */
+ function get_form( $form = 'default' ) {
+ /*
+ $current_form = ( isset( $_GET['form'] ) ) ? $_GET['form'] : $form;
+ $wpmem_forms = get_option( 'wpmembers_forms' );
+ $fields = $wpmem_forms[ $current_form ];
+ $this->current_form = $current_form;
+ $this->current_form_fields = $fields;
+ */
+ $this->current_form = sanitize_text_field( wpmem_get( 'form', $form, 'get' ) ); //( isset( $_GET['form'] ) ) ? $_GET['form'] : $form;
+ global $wpmem;
+ // Add numeric array form fields as associative
+ //foreach( $wpmem->fields as $field ) {
+ // $wpmem->fields[ $field[2] ] = $field;
+ //}
+ $this->current_form_fields = wpmem_fields();
+ }
+
+ /**
+ * Build admin panel form action url.
+ *
+ * @since 3.1.8
+ *
+ * @global string $pagenow
+ * @global string $plugin_page
+ * @global object $wpmem The WP_Members Object.
+ * @param mixed $args Array of additional arguments|boolean. Default: false.
+ * @return string $url
+ */
+ function form_post_url( $args = false ) {
+ global $pagenow, $plugin_page, $wpmem;
+ $tab = sanitize_text_field( wpmem_get( 'tab', false, 'get' ) );
+ $params = array( 'page' => $plugin_page );
+ if ( $tab ) {
+ $params['tab'] = $tab;
+ }
+ if ( $args ) {
+ foreach( $args as $key => $val ) {
+ $params[ $key ] = $val;
+ }
+ }
+ $url = add_query_arg( $params, admin_url( $pagenow ) );
+ return esc_url( $url );
+ }
+
+ /**
+ * Enqueues the admin javascript and css files.
+ *
+ * Replaces wpmem_admin_enqueue_scripts().
+ * Only loads the js and css on admin screens that use them.
+ *
+ * @since 3.1.7
+ * @since 3.2.0 Moved into admin object, renamed dashboard_enqueue_scripts().
+ * @since 3.2.1 Load js for post.php hook.
+ * @since 3.3.0 Everything loads from /assets/ folder.
+ *
+ * @global object $current_screen
+ * @param string $hook The admin screen hook being loaded.
+ */
+ function dashboard_enqueue_scripts( $hook ) {
+ global $current_screen;
+ if ( 'edit.php' == $hook
+ || 'post.php' == $hook
+ || 'post-new.php' == $hook
+ || 'user-new.php' == $hook
+ || 'user-edit.php' == $hook
+ || 'profile.php' == $hook
+ || 'users.php' == $hook
+ || 'settings_page_wpmem-settings' == $hook ) {
+ wp_enqueue_style( 'wpmem-admin', wpmem_get_plugin_url() . 'assets/css/admin' . wpmem_get_suffix() . '.css', '', wpmem_get_plugin_version() );
+ }
+ if ( 'settings_page_wpmem-settings' == $hook || 'post.php' == $hook || 'post-new.php' == $hook ) {
+ wp_enqueue_script( 'jquery-ui-dialog' ); // enqueue jQuery UI Dialog dependency
+ wp_register_script( 'wpmem-admin', wpmem_get_plugin_url() . 'assets/js/admin' . wpmem_get_suffix() . '.js', 'jquery', wpmem_get_plugin_version(), true );
+ $translation_array = array(
+ 'close_btn' => __( 'Close', 'wp-members' ),
+ );
+ wp_localize_script( 'wpmem-admin', 'wpmem_get_settings_vars', $translation_array );
+ wp_enqueue_script( 'wpmem-admin' );
+ }
+ if ( ( ( 'post.php' == $hook || 'post-new.php' == $hook ) && wpmem_is_enabled( 'enable_products' ) )
+ || ( 'wpmem_product' == get_post_type() )
+ || ( 'user-edit' == $current_screen->id || 'profile' == $current_screen->id )
+ || ( 'settings_page_wpmem-settings' == $hook ) ) {
+ wp_enqueue_script( 'jquery' );
+ wp_enqueue_script( 'jquery-ui-core' ); // enqueue jQuery UI Core
+ wp_enqueue_script( 'jquery-ui-datepicker' ); // enqueue jQuery UI Datepicker
+ if ( ! wp_style_is( 'jquery-ui-style', 'enqueued' ) ) {
+ wp_register_style( 'jquery-ui-style', wpmem_get_plugin_url() . 'includes/vendor/jquery-ui/css/jquery-ui' . wpmem_get_suffix() . '.css' );
+ }
+ wp_enqueue_style( 'jquery-ui-style' );
+ }
+ if ( ( 'post.php' == $hook || 'post-new.php' == $hook ) && wpmem_is_enabled( 'enable_products' ) ) {
+ if ( ! wp_script_is( 'select2', 'enqueued' ) ) {
+ wp_register_style( 'select2-style', wpmem_get_plugin_url() . 'includes/vendor/select2/css/select2' . wpmem_get_suffix() . '.css', false, '4.0.5', 'all' );
+ wp_register_script( 'select2', wpmem_get_plugin_url() . 'includes/vendor/select2/js/select2' . wpmem_get_suffix() . '.js', array( 'jquery' ), '4.0.5', true );
+ wp_enqueue_style( 'select2-style' );
+ wp_enqueue_script( 'select2' );
+ }
+ }
+ if ( 'user-edit' == $current_screen->id || 'profile' == $current_screen->id ) {
+ wp_enqueue_script( 'jquery-ui-tabs' ); // enqueue jQuery UI Tabs
+ }
+ }
+
+ /**
+ * Filter to add link to settings from plugin panel.
+ *
+ * @since 2.4.0
+ * @since 3.2.0 Moved to admin API class, renamed from wpmem_admin_plugin_links().
+ *
+ * @global object $wpmem
+ *
+ * @param array $links
+ * @param string $file
+ * @return array $links
+ */
+ function plugin_links( $links, $file ) {
+ global $wpmem;
+ static $wpmem_plugin;
+ if ( ! $wpmem_plugin ) {
+ $wpmem_plugin = plugin_basename( $wpmem->path . '/wp-members.php' );
+ }
+ if ( $file == $wpmem_plugin ) {
+ $settings_link = '' . __( 'Settings', 'wp-members' ) . '';
+ $links = array_merge( array( $settings_link ), $links );
+ }
+ return $links;
+ }
+
+ /**
+ * Returns an array of WordPress reserved terms.
+ *
+ * @since 3.0.2
+ * @since 3.2.3 Moved to WP_Members_Admin_API class.
+ *
+ * @return array An array of WordPress reserved terms.
+ */
+ function wp_reserved_terms() {
+ $reserved_terms = array( 'attachment', 'attachment_id', 'author', 'author_name', 'calendar', 'cat', 'category', 'category__and', 'category__in', 'category__not_in', 'category_name', 'comments_per_page', 'comments_popup', 'customize_messenger_channel', 'customized', 'cpage', 'day', 'debug', 'error', 'exact', 'feed', 'fields', 'hour', 'link_category', 'm', 'minute', 'monthnum', 'more', 'name', 'nav_menu', 'nonce', 'nopaging', 'offset', 'order', 'orderby', 'p', 'page', 'page_id', 'paged', 'pagename', 'pb', 'perm', 'post', 'post__in', 'post__not_in', 'post_format', 'post_mime_type', 'post_status', 'post_tag', 'post_type', 'posts', 'posts_per_archive_page', 'posts_per_page', 'preview', 'robots', 'role', 's', 'search', 'second', 'sentence', 'showposts', 'static', 'subpost', 'subpost_id', 'tag', 'tag__and', 'tag__in', 'tag__not_in', 'tag_id', 'tag_slug__and', 'tag_slug__in', 'taxonomy', 'tb', 'term', 'theme', 'type', 'w', 'withcomments', 'withoutcomments', 'year' );
+
+ /**
+ * Filter the array of reserved terms.
+ *
+ * @since 3.0.2
+ *
+ * @param array $reserved_terms
+ */
+ $reserved_terms = apply_filters( 'wpmem_wp_reserved_terms', $reserved_terms );
+
+ return $reserved_terms;
+ }
+
+ function settings( $which ) {
+ switch ( $which ) {
+ case 'content':
+ return array( 'block' => 'Content Restriction', 'show_excerpt' => 'Show Excerpts', 'show_login' => 'Show Login Form', 'show_reg' => 'Show Registration Form', 'autoex' => 'Auto Excerpt' );
+ break;
+ case 'options':
+ return array( 'notify' => 'Notify admin', 'mod_reg' => 'Moderate registration', 'captcha' => 'Enable registration CAPTCHA', 'warnings' => 'Ignore warning messages', 'dropins' => 'Enable dropins', 'enable_products' => 'Enable membership products', 'clone_menus' => 'Clone menus' );
+ break;
+ }
+ }
+
+ function post_types() {
+ return get_post_types( array( 'public' => true, '_builtin' => false ), 'names', 'and' );
+ }
+
+} // End of WP_Members_Admin_API class.
+
+// End of file.
\ No newline at end of file
diff --git a/includes/admin/class-wp-members-admin-posts.php b/includes/admin/class-wp-members-admin-posts.php
new file mode 100644
index 00000000..b93a5862
--- /dev/null
+++ b/includes/admin/class-wp-members-admin-posts.php
@@ -0,0 +1,406 @@
+post_types ) ) ) || ! isset( $_GET['post_type'] ) ) { ?>
+ current_action();
+ $sendback = '';
+
+ switch ( $action ) {
+
+ case ( 'unblock' ):
+ case ( 'block' ):
+ case ( 'hide' ):
+ // Validate nonce.
+ check_admin_referer( 'bulk-posts' );
+ // Get the posts.
+ $posts = wpmem_get( 'post', '', 'request' );
+ // Convert action.
+ $status = ( 'hide' == $action ) ? 2 : ( ( 'block' == $action ) ? 1 : 0 );
+ // Update posts.
+ $x = '';
+ if ( $posts ) {
+ foreach ( $posts as $post_id ) {
+ // Keep a count of posts updated.
+ $x++;
+ // Make sure $post_id is just an integer.
+ $post_id = (int)$post_id;
+ // Get the post type.
+ $post = get_post( $post_id );
+ $type = $post->post_type;
+ // Update accordingly.
+ self::set_block_status( $status, $post_id, $post->post_type );
+ }
+ // Set the return message.
+ $arr = array(
+ 'a' => 'updated',
+ 'n' => $x,
+ 'post_type' => $type,
+ );
+ if ( isset( $_GET['post_status'] ) && 'all' != $_GET['post_status'] ) {
+ $arr['post_status'] = sanitize_text_field( $_GET['post_status'] );
+ }
+
+ $sendback = add_query_arg( array( $arr ), '', $sendback );
+
+ } else {
+ // Set the return message.
+ $sendback = add_query_arg( array( 'a' => 'none' ), '', $sendback );
+ }
+ break;
+
+ default:
+ return;
+
+ }
+
+ // If we did not return already, we need to wp_safe_redirect.
+ wp_safe_redirect( $sendback );
+ exit();
+ }
+
+
+ /**
+ * Function to echo admin update message.
+ *
+ * @since 2.8.2
+ * @since 3.3.0 Changed from wpmem_posts_admin_notices().
+ *
+ * @global $pagenow
+ * @global $post_type
+ */
+ static function notices() {
+
+ global $pagenow, $post_type;
+ if ( $pagenow == 'edit.php' && isset( $_REQUEST['a'] ) ) {
+ $msg = ( $_REQUEST['a'] == 'block' ) ? sprintf( __( '%s restricted', 'wp-members' ), $post_type ) : sprintf( __( '%s unrestricted', 'wp-members' ), $post_type );
+ echo '' . esc_html( $_REQUEST['n'] ) . ' ' . esc_html( $msg ) . '
';
+ }
+ }
+
+
+ /**
+ * Adds the blocking meta boxes for post and page editor screens.
+ *
+ * @since 2.8.0
+ * @since 3.3.0 Changed from wpmem_block_meta_add().
+ *
+ * @global object $wp_post_types The Post Type object.
+ * @global object $wpmem The WP-Members object.
+ */
+ static function block_meta_add() {
+
+ global $wp_post_types, $wpmem;
+
+ // Build an array of post types
+ $post_arr = array(
+ 'post' => 'Posts',
+ 'page' => 'Pages',
+ );
+ if ( isset( $wpmem->post_types ) ) {
+ foreach ( $wpmem->post_types as $key => $val ) {
+ $post_arr[ $key ] = $val;
+ }
+ }
+
+ foreach ( $post_arr as $key => $val ) {
+ if ( isset( $wp_post_types[ $key ] ) ) {
+ $post_type = $wp_post_types[ $key ];
+ /**
+ * Filter the post meta box title.
+ *
+ * @since 2.9.0
+ *
+ * @param Post restriction title.
+ */
+ $post_title = apply_filters( 'wpmem_admin_' . $key . '_meta_title', sprintf( __( '%s Restriction', 'wp-members' ), $post_type->labels->singular_name ) );
+
+ add_meta_box( 'wpmem-block-meta-id', $post_title, array( 'WP_Members_Admin_Posts', 'block_meta' ), $key, 'side', 'high'
+ // ,array( '__back_compat_meta_box' => true, ) // @todo Convert to Block and declare this for backwards compat ONLY!
+ );
+ }
+ }
+ }
+
+
+ /**
+ * Builds the meta boxes for post and page editor screens.
+ *
+ * @since 2.8.0
+ * @since 3.3.0 Changed from wpmem_block_meta().
+ *
+ * @global object $post The WordPress post object.
+ * @global object $wp_post_types The Post Type object.
+ * @global object $wpmem The WP-Members object.
+ */
+ static function block_meta() {
+
+ global $post, $wp_post_types, $wpmem;
+
+ wp_nonce_field( 'wpmem_block_meta_nonce', 'wpmem_block_meta_nonce' );
+
+ $post_type = $wp_post_types[ $post->post_type ];
+ $post_meta_value = get_post_meta( $post->ID, '_wpmem_block', true );
+ $post_meta_value = ( null == $post_meta_value ) ? $wpmem->block[ $post->post_type ] : $post_meta_value;
+ $post_meta_settings = array(
+ '0' => array( 'text' => __( 'Unrestricted', 'wp-members' ), 'icon' => '' ),
+ '1' => array( 'text' => __( 'Restricted', 'wp-members' ), 'icon' => '' ),
+ '2' => array( 'text' => __( 'Hidden', 'wp-members' ), 'icon' => '' ),
+ ); ?>
+ $value ) {
+ echo $value['icon'];
+ } ?>
+
+
+
+ $value ) {
+ $original_value = ( $post_meta_value == $key ) ? $key : $original_value;
+ $original_label = ( $post_meta_value == $key ) ? $value['text'] : $original_label;
+ echo '
';
+ }
+ echo '';
+ echo '';
+ ?>
+
+
+
+
+
+
+ post_type );
+
+ /**
+ * Fires after the post block meta box is saved.
+ *
+ * Allows actions to be hooked to the meta save process.
+ *
+ * @since 2.8.8
+ *
+ * @param $post object The WP Post Object.
+ * @param $block boolean The WP-Members block value.
+ */
+ do_action( 'wpmem_admin_block_meta_save', $post, $block, '' );
+ }
+
+
+ /**
+ * Adds WP-Members blocking status to Posts Table columns.
+ *
+ * @since 2.8.3
+ * @since 3.3.0 Changed from wpmem_post_columns().
+ *
+ * @global object $wpmem The WP-Members Object
+ * @param array $columns The array of table columns.
+ * @return array $columns
+ */
+ static function columns( $columns ) {
+ global $wpmem;
+ $post_type = ( isset( $_REQUEST['post_type'] ) ) ? sanitize_text_field( $_REQUEST['post_type'] ) : 'post';
+
+ if ( $post_type == 'page' || $post_type == 'post' || array_key_exists( $post_type, $wpmem->post_types ) ) {
+ $columns['wpmem_block'] = __( 'Status', 'wp-members' );
+ }
+ return $columns;
+ }
+
+
+ /**
+ * Adds blocking status to the Post Table column.
+ *
+ * @since 2.8.3
+ * @since 3.3.0 Changed from wpmem_post_columns_content().
+ *
+ * @global object $wpmem The WP_Members Object.
+ * @param string $column_name
+ * @param int $post_ID
+ */
+ static function columns_content( $column_name, $post_ID ) {
+
+ global $wpmem;
+ $post_type = sanitize_text_field( wpmem_get( 'post_type', 'post', 'request' ) );
+
+ if ( $column_name == 'wpmem_block' ) {
+
+ $block_meta = get_post_meta( $post_ID, '_wpmem_block', true );
+
+ // Backward compatibility for old block/unblock meta.
+ if ( ! $block_meta ) {
+ // Check for old meta.
+ $old_block = get_post_meta( $post_ID, 'block', true );
+ $old_unblock = get_post_meta( $post_ID, 'unblock', true );
+ $block_meta = ( $old_block ) ? 1 : ( ( $old_unblock ) ? 0 : $block_meta );
+ }
+
+ if ( $wpmem->block[ $post_type ] == 1 ) {
+ $block_span = array( 'lock', 'green', __( 'Restricted', 'wp-members' ) );
+ }
+ if ( $wpmem->block[ $post_type ] == 0 ) {
+ $block_span = array( 'unlock', 'red', __( 'Unrestricted', 'wp-members' ) );
+ }
+ if ( $wpmem->block[ $post_type ] == 1 && $block_meta == '0' ) {
+ $block_span = array( 'unlock', 'red', __( 'Unrestricted', 'wp-members' ) );
+ } elseif ( $wpmem->block[ $post_type ] == 0 && $block_meta == '1' ) {
+ $block_span = array( 'lock', 'green', __( 'Restricted', 'wp-members' ) );
+ } elseif ( 2 == $block_meta ) {
+ $block_span = array( 'hidden', '', __( 'Hidden', 'wp-members' ) );
+ }
+ echo '';
+ }
+ }
+
+ /**
+ * Sets custom block status for a post.
+ *
+ * @since 3.2.0
+ * @since 3.3.0 Changed from wpmem_set_block_status().
+ *
+ * @global object $wpmem The WP_Members object class.
+ * @param int $status 0|1|2 for unblock|block|hide
+ * @param int $post_id The post ID to set a meta value.
+ * @param string $post_type The post type.
+ */
+ static function set_block_status( $status, $post_id, $post_type ) {
+ global $wpmem;
+
+ // Previous value.
+ $prev_value = get_post_meta( $post_id, '_wpmem_block', true );
+
+ // Update accordingly.
+ if ( false !== $prev_value && $status != $prev_value ) {
+ if ( $status == $wpmem->block[ $post_type ] ) {
+ delete_post_meta( $post_id, '_wpmem_block' );
+ } else {
+ update_post_meta( $post_id, '_wpmem_block', $status );
+ }
+ } elseif ( ! $prev_value && $status != $wpmem->block[ $post_type ] ) {
+ update_post_meta( $post_id, '_wpmem_block', $status );
+ } elseif ( $status != $prev_value ) {
+ delete_post_meta( $post_id, '_wpmem_block' );
+ }
+
+ // If the value is to hide, delete the transient so that it updates.
+ if ( 2 == $status || ( 2 == $prev_value && $status != $prev_value ) ) {
+ $wpmem->update_hidden_posts();
+ }
+ }
+
+ /**
+ * Adds shortcode dropdown to post editor tinymce.
+ *
+ * @since 3.0
+ * @since 3.3.2 Added to posts class as static
+ *
+ * @global object $wpmem_shortcode The WP_Members_TinyMCE_Buttons object.
+ */
+ static function load_tinymce() {
+ if ( version_compare( get_bloginfo( 'version' ), '3.9', '>=' ) ) {
+ global $wpmem, $wpmem_shortcode;
+ include( $wpmem->path . 'includes/admin/class-wp-members-tinymce-buttons.php' );
+ $wpmem_shortcode = new WP_Members_TinyMCE_Buttons;
+ }
+ }
+}
\ No newline at end of file
diff --git a/includes/admin/class-wp-members-admin-users.php b/includes/admin/class-wp-members-admin-users.php
new file mode 100644
index 00000000..548d6860
--- /dev/null
+++ b/includes/admin/class-wp-members-admin-users.php
@@ -0,0 +1,627 @@
+
+ ID != get_current_user_id() ) {
+
+ if ( 1 == $wpmem->act_link ) {
+ if ( false === wpmem_is_user_confirmed( $user_object->ID ) ) {
+ $action = 'confirm';
+ $term = __( 'Confirm', 'wp-members' );
+ } else {
+ $action = 'unconfirm';
+ $term = __( 'Unconfirm', 'wp-members' );
+ }
+ $url = add_query_arg( array( 'action' => $action . '-single', 'user' => $user_object->ID ), "users.php" );
+ $url = wp_nonce_url( $url, 'confirm-user' );
+ $actions[ $action ] = '' . $term . '';
+
+ // Resend welcome email (will contain confirmation link if enabled).
+ //$actions['resend_welcome'] = '' . __( 'Resend welcome email', 'wp-members' ) . '';
+ }
+
+ if ( 1 == $wpmem->mod_reg ) {
+ $is_active = wpmem_is_user_activated( $user_object->ID );
+
+ if ( false === $is_active ) {
+ $action = 'activate';
+ $term = __( 'Activate', 'wp-members' );
+ } else {
+ $action = 'deactivate';
+ $term = __( 'Deactivate', 'wp-members' );
+ }
+ $url = add_query_arg( array( 'action' => $action . '-single', 'user' => $user_object->ID ), "users.php" );
+ $url = wp_nonce_url( $url, 'activate-user' );
+ $actions[ $action ] = '' . $term . '';
+ }
+ }
+ return $actions;
+ }
+
+ /**
+ * Function to handle bulk actions at page load.
+ *
+ * @since 2.8.2
+ *
+ * @uses WP_Users_List_Table
+ *
+ * @global object $wpmem
+ */
+ static function page_load() {
+
+ global $wpmem;
+ if ( current_user_can( 'list_users' ) ) {
+ $wpmem->admin->user_search = new WP_Members_Admin_User_Search();
+ }
+
+ // If exporting all users, do it, then exit.
+ if ( current_user_can( 'list_users' ) && wpmem_get( 'export_all', false, 'request' ) ) {
+ $today = date( "Y-m-d" );
+ wpmem_export_users();
+ exit();
+ }
+
+ $wp_list_table = _get_list_table( 'WP_Users_List_Table' );
+ $action = $wp_list_table->current_action();
+ $sendback = '';
+
+ switch ( $action ) {
+
+ case 'activate':
+ case 'deactivate':
+
+ // Validate nonce.
+ check_admin_referer( 'bulk-users' );
+
+ // Get the users.
+ if ( isset( $_REQUEST['users'] ) ) {
+
+ $users = $_REQUEST['users'];
+
+ // Update the users.
+ $x = 0;
+ foreach ( $users as $user ) {
+ $user = filter_var( $user, FILTER_VALIDATE_INT );
+ // Current user cannot activate or deactivate themselves.
+ if ( $user != get_current_user_id() ) {
+ // Check to see if the user is already activated, if not, activate.
+ if ( 'activate' == $action && 1 != get_user_meta( $user, 'active', true ) ) {
+ wpmem_activate_user( $user );
+ } elseif( 'deactivate' == $action ) {
+ wpmem_deactivate_user( $user );
+ }
+ $x++;
+ }
+ }
+ $msg = ( 'activate' == $action ) ? urlencode( sprintf( __( '%s users activated', 'wp-members' ), $x ) ) : urlencode( sprintf( __( '%s users deactivated', 'wp-members' ), $x ) );
+
+ } else {
+ $msg = urlencode( __( 'No users selected', 'wp-members' ) );
+ }
+
+ // Set the return message.
+ $sendback = add_query_arg( array( 'activated' => $msg ), $sendback );
+ break;
+
+ case 'activate-single':
+ case 'deactivate-single':
+
+ // Validate nonce.
+ check_admin_referer( 'activate-user' );
+
+ // Get the users.
+ $user_id = filter_var( $_REQUEST['user'], FILTER_VALIDATE_INT );
+
+ // Check to see if the user is already activated, if not, activate.
+ if ( $user_id == get_current_user_id() ) {
+ $msg = urlencode( sprintf( esc_html__( 'You cannot activate or deactivate yourself', 'wp-members' ) ) );
+
+ } elseif ( 'activate-single' == $action && false === wpmem_is_user_activated( $user_id ) ) {
+ wpmem_activate_user( $user_id );
+ $user_info = get_userdata( $user_id );
+ $msg = urlencode( sprintf( esc_html__( "%s activated", 'wp-members' ), $user_info->user_login ) );
+
+ } elseif ( 'deactivate-single' == $action ) {
+ wpmem_deactivate_user( $user_id );
+ $user_info = get_userdata( $user_id );
+ $msg = urlencode( sprintf( esc_html__( "%s deactivated", 'wp-members' ), $user_info->user_login ) );
+
+ } else {
+ // Set the return message.
+ $msg = urlencode( __( "That user is already active", 'wp-members' ) );
+ }
+ $sendback = add_query_arg( array( 'activated' => $msg ), $sendback );
+ break;
+
+ case 'confirm-single':
+ case 'unconfirm-single':
+
+ // Validate nonce.
+ check_admin_referer( 'confirm-user' );
+
+ // Get the users.
+ $user_id = filter_var( $_REQUEST['user'], FILTER_VALIDATE_INT );
+
+ // Check to see if the user is already activated, if not, activate.
+ if ( $user_id == get_current_user_id() ) {
+ $msg = urlencode( sprintf( esc_html__( 'You cannot confirm or unconfirm yourself', 'wp-members' ) ) );
+
+ } elseif ( 'confirm-single' == $action && false === wpmem_is_user_confirmed( $user_id ) ) {
+ wpmem_set_user_as_confirmed( $user_id );
+ $user_info = get_userdata( $user_id );
+ $msg = urlencode( sprintf( esc_html__( "%s confirmed", 'wp-members' ), $user_info->user_login ) );
+
+ } elseif ( 'unconfirm-single' == $action ) {
+ wpmem_set_user_as_unconfirmed( $user_id );
+ $user_info = get_userdata( $user_id );
+ $msg = urlencode( sprintf( esc_html__( "%s unconfirmed", 'wp-members' ), $user_info->user_login ) );
+
+ } else {
+ // Set the return message.
+ $msg = urlencode( __( "That user is already confirmed", 'wp-members' ) );
+ }
+ $sendback = add_query_arg( array( 'activated' => $msg ), $sendback );
+ break;
+
+ case 'show':
+
+ add_action( 'pre_user_query', array( 'WP_Members_Admin_Users', 'pre_user_query' ) );
+ return;
+ break;
+
+ case 'export':
+
+ $users = wpmem_get( 'users', array(), 'request' );
+ wpmem_export_users( array( 'export'=>'selected' ), wpmem_sanitize_array( $users, 'integer' ) );
+ return;
+ break;
+
+ default:
+ return;
+ break;
+
+ }
+
+ /**
+ * Doing user action.
+ *
+ * @since 3.3.0
+ */
+ do_action( 'wpmem_user_action' );
+
+ // If we did not return already, we need to wp_safe_redirect.
+ wp_safe_redirect( $sendback );
+ exit();
+
+ }
+
+ /**
+ * Function to echo admin update message.
+ *
+ * @since 2.8.2
+ */
+ static function admin_notices() {
+
+ global $pagenow, $user_action_msg;
+ if( $pagenow == 'users.php' && isset( $_REQUEST['activated'] ) ) {
+ $message = esc_html( $_REQUEST['activated'] );
+ echo "{$message}
";
+ }
+
+ if ( $user_action_msg ) {
+ echo "{$user_action_msg}
";
+ }
+ }
+
+ /**
+ * Function to add user views to the top list.
+ *
+ * @since 2.8.2
+ * @since 3.1.2 Added user view counts as transient.
+ *
+ * @todo Could revise to use wpmem_add_user_view_link().
+ *
+ * @global object $wpdb
+ * @global object $wpmem
+ * @param array $views
+ * @return array $views
+ */
+ static function views( $views ) {
+
+ global $wpmem;
+
+ // Get the cached user counts.
+ $user_counts = get_transient( 'wpmem_user_counts' );
+
+ // check to see if data was successfully retrieved from the cache
+ if ( false === $user_counts ) {
+
+ // @todo For now, 5 minutes. We'll see how things go.
+ $transient_expires = 300; // Value in seconds, 1 day: ( 60 * 60 * 24 );
+
+ global $wpdb;
+
+ // We need a count of total users.
+ // @todo - need a more elegant way of this entire process.
+ $sql = "SELECT COUNT(*) FROM " . $wpdb->users;
+ $users = $wpdb->get_var( $sql );
+
+ // What needs to be counted?
+ $count_metas = array(
+ 'pending' => 'pending', // Used for PayPal Extension
+ 'trial' => 'trial', // Used for PayPal Extension
+ 'subscription' => 'subscription', // Used for PayPal Extension
+ 'expired' => 'expired', // Used for PayPal Extension
+ 'active' => 'active',
+ 'notactive' => 'active',
+ 'deactivated' => 'deactivated',
+ 'notexported' => 'exported',
+ 'confirmed' => '_wpmem_user_confirmed',
+ 'notconfirmed' => '_wpmem_user_confirmed',
+ );
+
+ // Handle various counts.
+ $user_counts = array();
+ foreach ( $count_metas as $key => $meta_key ) {
+ if ( 'confirmed' == $key || 'notconfirmed' == $key ) {
+ $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key=%s AND meta_value>0", $meta_key ) );
+ $count = ( 'notconfirmed' == $key ) ? $users - $count : $count;
+ }
+ if ( 'active' == $key ) {
+ $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key=%s AND meta_value=1", $meta_key ) );
+ }
+ if ( 'notactive' == $key || 'notexported' == $key ) {
+ $users_with_meta = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key=%s AND meta_value=1", $meta_key ) );
+ $count = $users - $users_with_meta;
+ }
+ if ( 'deactivated' == $key ) {
+ $count = $wpdb->get_var( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key = 'active' AND meta_value = 0" );
+ }
+ if ( 'trial' == $key || 'subscription' == $key || 'pending' == $key ) {
+ $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key = 'exp_type' AND meta_value = \"%s\"", $key ) );
+ }
+ if ( 'expired' == $key ) {
+ $count = $wpdb->get_var( "SELECT COUNT(*) FROM " . $wpdb->usermeta . " WHERE meta_key = 'expires' AND STR_TO_DATE( meta_value, '%m/%d/%Y' ) < CURDATE() AND meta_value != '01/01/1970'" );
+ }
+ $user_counts[ $key ] = $count;
+ }
+ set_transient( 'wpmem_user_counts', $user_counts, $transient_expires );
+ }
+
+ if ( defined( 'WPMEM_EXP_MODULE' ) && 1 == $wpmem->use_exp ) {
+ $views['pending'] = __( 'Pending', 'wp-members' );
+ $views['trial'] = __( 'Trial', 'wp-members' );
+ $views['subscription'] = __( 'Subscription', 'wp-members' );
+ $views['expired'] = __( 'Expired', 'wp-members' );
+ }
+ if ( 1 == $wpmem->mod_reg ) {
+ $views['active'] = __( 'Activated', 'wp-members' );
+ $views['notactive'] = __( 'Pending Activation', 'wp-members' );
+ $views['deactivated'] = __( 'Deactivated', 'wp-members' );
+ }
+ if ( 1 == $wpmem->act_link ) {
+ $views['confirmed'] = __( 'Confirmed', 'wp-members' );
+ $views['notconfirmed'] = __( 'Not Confirmed', 'wp-members' );
+ }
+ $views['notexported'] = __( 'Not Exported', 'wp-members' );
+ $show = sanitize_text_field( wpmem_get( 'show', false, 'get' ) );
+
+ foreach ( $views as $key => $view ) {
+ if ( isset( $user_counts[ $key ] ) ) {
+ $link = "users.php?action=show&show=" . $key;
+ $current = ( $show == $key ) ? ' class="current"' : '';
+ $views[ $key ] = sprintf(
+ '%s (%d)',
+ esc_url( $link ),
+ $current,
+ $view,
+ isset( $user_counts[ $key ] ) ? $user_counts[ $key ] : ''
+ );
+ }
+ }
+
+ /**
+ * Filters all views before returning to the WP 'views_users' filter.
+ *
+ * @since 3.3.0
+ * @since unknown Added $show
+ *
+ * @param array $views {
+ *
+ * @type string The HTML for the view.
+ * }
+ * @param string $show
+ */
+ $views = apply_filters( 'wpmem_views_users', $views, $show );
+
+ return $views;
+ }
+
+ /**
+ * Function to add custom user columns to the user table.
+ *
+ * @since 2.8.2
+ *
+ * @param array $columns
+ * @return array $columns
+ */
+ static function add_user_column( $columns ) {
+
+ global $wpmem_user_columns, $wpmem;
+
+ // Get any columns to be added to the Users > All Users screen.
+ $wpmem_user_columns = get_option( 'wpmembers_utfields' );
+
+ if ( $wpmem_user_columns ) {
+ $column_labels = array();
+ if ( 1 != $wpmem->mod_reg ) {
+ unset( $wpmem_user_columns['active'] );
+ }
+
+ // @todo This is a workaround so that wpmembers_utfields doesn't have to be updated.
+ if ( isset( $wpmem_user_columns['active'] ) ) {
+ $wpmem_user_columns['active'] = __( 'Activated', 'wp-members' );
+ }
+
+ if ( 1 != $wpmem->act_link ) {
+ unset( $wpmem_user_columns['_wpmem_user_confirmed'] );
+ }
+
+ // @todo Need to eventually change the wpmembers_utfields setting so we don't have to do it this way.
+ $fields = wpmem_fields();
+ foreach ( $wpmem_user_columns as $key => $value ) {
+ $column_labels[ $key ] = ( isset( $fields[ $key ] ) ) ? $fields[ $key ]['label'] : $value;
+ }
+
+ /**
+ * Filter the User > All Users custom columns before they are merged.
+ *
+ * @since 3.3.8
+ *
+ * @param array
+ */
+ $column_labels = apply_filters( 'wpmem_user_columns', $column_labels );
+
+ $columns = array_merge( $columns, $column_labels );
+ }
+
+ // Makes WP-Members columns sortable.
+ // @todo - finish debugging class or add sortable functions to users.php.
+ // require_once( $wpmem->path . 'admin/includes/class-wp-members-sortable-user-columns.php' );
+ // new WP_Members_Sortable_User_Columns( $wpmem_user_columns );
+
+ return $columns;
+ }
+
+ /**
+ * Function to add the user content to the custom column.
+ *
+ * @since 2.8.2
+ *
+ * @param $value
+ * @param $column_name
+ * @param $user_id
+ * @return The user value for the custom column.
+ */
+ static function add_user_column_content( $value, $column_name, $user_id ) {
+
+ // Is the column a WP-Members column?
+ global $wpmem_user_columns, $wpmem;
+ $is_wpmem = ( is_array( $wpmem_user_columns ) && array_key_exists( $column_name, $wpmem_user_columns ) ) ? true : false;
+
+ if ( $is_wpmem ) {
+
+ switch ( $column_name ) {
+
+ case 'active':
+ if ( 1 == $wpmem->mod_reg ) {
+ // If the column is "active", then return the value or empty. Returning in here keeps us from displaying another value.
+ return ( get_user_meta( $user_id , 'active', 'true' ) != 1 ) ? '' : '';
+ } else {
+ return;
+ }
+ break;
+
+ case '_wpmem_user_confirmed':
+ if ( 1 == $wpmem->act_link ) {
+ $user_confirmed = get_user_meta( $user_id , '_wpmem_user_confirmed', 'true' );
+ return ( $user_confirmed ) ? date_i18n( get_option( 'date_format' ), $user_confirmed ) : __( 'Not confirmed', 'wp-members' );
+ } else {
+ return;
+ }
+ break;
+
+ case 'user_url':
+ case 'user_registered':
+ // Unlike other fields, website/url is not a meta field.
+ $user_info = get_userdata( $user_id );
+ return $user_info->$column_name;
+ break;
+
+ case 'user_id':
+ return $user_id;
+
+ default:
+ return get_user_meta( $user_id, $column_name, true );
+ break;
+ }
+
+ }
+
+ /**
+ * Filter user column content.
+ *
+ * @since 3.3.8
+ *
+ * @param string $value
+ * @param string $column_name
+ * @param int $user_id
+ */
+ $value = apply_filters( 'wpmem_user_column_content', $value, $column_name, $user_id );
+ return $value;
+ }
+
+ /**
+ * Adjusts user query based on custom views.
+ *
+ * @since 2.8.3
+ *
+ * @todo Currently, not activated query returns users who are deactivated. This
+ * may be confusing for admins, so work on a query that displays only
+ * users who have never been activated.
+ *
+ * @todo Do theses using wpmem_add_query_where().
+ *
+ * @param $user_search
+ */
+ static function pre_user_query( $user_search ) {
+
+ global $wpdb;
+ $show = sanitize_text_field( wpmem_get( 'show', '', 'get' ) );
+ switch ( $show ) {
+
+ case 'trial':
+ case 'subscription':
+ case 'pending':
+ $replace_query = "WHERE 1=1 AND {$wpdb->users}.ID IN (
+ SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
+ WHERE {$wpdb->usermeta}.meta_key = 'exp_type'
+ AND {$wpdb->usermeta}.meta_value = \"" . esc_sql( $show ) . "\" )";
+ break;
+
+ case 'expired':
+ $replace_query = "WHERE 1=1 AND {$wpdb->users}.ID IN (
+ SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
+ WHERE {$wpdb->usermeta}.meta_key = 'expires'
+ AND STR_TO_DATE( {$wpdb->usermeta}.meta_value, '%m/%d/%Y' ) < CURDATE()
+ AND {$wpdb->usermeta}.meta_value != '01/01/1970' )";
+ break;
+
+ case 'confirmed':
+ case 'notconfirmed':
+ $in = ( 'confirmed' == $show ) ? 'IN' : 'NOT IN';
+ $replace_query = "WHERE 1=1 AND {$wpdb->users}.ID " . esc_sql( $in ) . " (
+ SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
+ WHERE {$wpdb->usermeta}.meta_key = \"" . esc_sql( '_wpmem_user_confirmed' ) . "\" )";
+ break;
+
+ case 'active':
+ case 'notactive':
+ case 'notexported':
+ case 'deactivated':
+ default:
+ $key = ( 'notactive' == $show || 'deactivated' == $show ) ? 'active' : 'exported';
+ $in = ( 'deactivated' == $show ) ? 'IN' : 'NOT IN';
+ $val = ( 'deactivated' == $show ) ? '0' : '1';
+ if ( 'active' == $show ) {
+ $key = 'active'; $in = 'IN';
+ }
+ $replace_query = "WHERE 1=1 AND {$wpdb->users}.ID " . esc_sql( $in ) . " (
+ SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
+ WHERE {$wpdb->usermeta}.meta_key = \"" . esc_sql( $key ) . "\"
+ AND {$wpdb->usermeta}.meta_value = \"" . esc_sql( $val ) . "\" )";
+ break;
+ }
+
+ $query_where = str_replace( 'WHERE 1=1', $replace_query, $user_search->query_where );
+
+ /**
+ * Filters the pre_user_query being applied.
+ *
+ * @since 3.3.0
+ *
+ * @param string $query_where
+ */
+ $query_where = apply_filters( 'wpmem_query_where', $query_where, $show );
+
+ $user_search->query_where = $query_where;
+ }
+
+ /**
+ * Use wpmem_post_register_data to set the user_status field to 2 using wp_update_user.
+ * http://codex.wordpress.org/Function_Reference/wp_update_user
+ *
+ * @deprecated 3.3.6 No longer used.
+ *
+ * @uses wpmem_set_user_status
+ * @param $fields
+ */
+ static function set_new_user_non_active( $fields ) {
+ wpmem_set_user_status( $fields['ID'], 2 );
+ return;
+ }
+
+ /**
+ * Use wpmem_user_activated to set the user_status field to 0 using wp_update_user.
+ *
+ * @uses wpmem_set_user_status
+ * @param $user_id
+ */
+ static function set_activated_user( $user_id ) {
+ wpmem_set_user_status( $user_id, 0 );
+ return;
+ }
+
+ /**
+ * Use wpmem_user_deactivated to set the user_status field to 2 using wp_update_user.
+ *
+ * @uses wpmem_set_user_status
+ * @param $user_id
+ */
+ static function set_deactivated_user( $user_id ) {
+ wpmem_set_user_status( $user_id, 2 );
+ return;
+ }
+
+}
\ No newline at end of file
diff --git a/includes/admin/class-wp-members-bulk-edit-users.php b/includes/admin/class-wp-members-bulk-edit-users.php
new file mode 100644
index 00000000..c0ba66a7
--- /dev/null
+++ b/includes/admin/class-wp-members-bulk-edit-users.php
@@ -0,0 +1,174 @@
+ Update All Users.
+ * 3. Follow prompts on screen.
+ * 4. Remove the code snippet when completed.
+ */
+
+class WP_Members_Bulk_Edit_Users {
+
+ public $settings = array(
+ 'enable_products' => "Membership",
+ 'mod_reg' => "Activation",
+ 'act_link' => "Confirmation",
+ );
+
+ function __construct() {
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
+ }
+
+ function admin_menu() {
+ global $wpmem;
+ if ( 1 == $wpmem->act_link || 1 == $wpmem->mod_reg || 1 == $wpmem->enable_products ) {
+ $hook = add_users_page( 'WP-Members Bulk Edit Users', 'Bulk Edits', 'edit_users', 'wpmem-bulk-user-update', array( $this, 'admin_page' ) );
+ add_action( "load-$hook", array( $this, 'admin_page_load' ) );
+ }
+ }
+
+ function admin_page_load() {
+ global $update_all_complete;
+ $update_all_complete = false;
+
+ $utility_state = wpmem_get( 'wpmem_bulk_utility_state', false, 'request' );
+
+ if ( isset( $_GET['page'] ) && 'wpmem-bulk-user-update' == $_GET['page'] ) {
+
+ }
+
+ if ( isset( $_GET['page'] ) && 'update-all-users' == $_GET['page'] && isset( $_POST['update-all-confirm'] ) && 1 == $_POST['update-all-confirm'] ) {
+ $users = get_users( array( 'fields'=>'ID' ) );
+ // This is where we loop through users and update them.
+ foreach ( $users as $user_id ) {
+
+ // This is the custom process.
+ my_update_selected_user( $user_id );
+
+ }
+ $update_all_complete = true;
+ }
+ }
+
+ function admin_page() {
+ global $wpmem, $update_all_complete;
+
+ $utility_state = wpmem_get( 'wpmem_bulk_utility_state', false, 'request' );
+ $form_post = ( function_exists( 'wpmem_admin_form_post_url' ) ) ? wpmem_admin_form_post_url() : '';
+
+ echo '';
+ echo "" . __( 'WP-Members Bulk User Update', 'wp-members' ) . "
";
+ echo '';
+ echo '';
+ }
+}
+// End of My_Update_All_Users_Class
\ No newline at end of file
diff --git a/includes/admin/class-wp-members-products-admin.php b/includes/admin/class-wp-members-products-admin.php
new file mode 100644
index 00000000..3d3f076a
--- /dev/null
+++ b/includes/admin/class-wp-members-products-admin.php
@@ -0,0 +1,848 @@
+enable_products ) {
+ add_filter( 'manage_wpmem_product_posts_columns', array( $this, 'columns_heading' ) );
+ add_action( 'manage_wpmem_product_posts_custom_column', array( $this, 'columns_content' ), 10, 2 );
+ add_action( 'add_meta_boxes', array( $this, 'meta_boxes' ) );
+ add_action( 'page_attributes_misc_attributes', array( $this, 'membership_attributes' ) );
+ add_action( 'save_post', array( $this, 'save_details' ) );
+ add_action( 'wpmem_admin_after_block_meta', array( $this, 'add_product_to_post' ), 10, 2 );
+ add_action( 'wpmem_admin_block_meta_save', array( $this, 'save_product_to_post' ), 10, 3 );
+ add_action( 'admin_footer', array( $this, 'enqueue_select2' ) );
+ add_filter( 'manage_users_columns', array( $this, 'user_columns' ) );
+ add_filter( 'manage_users_custom_column', array( $this, 'user_columns_content' ), 10, 3 );
+ add_action( 'admin_head', array( $this, 'post_columns_width' ) );
+ add_filter( 'manage_posts_columns', array( $this, 'post_columns' ) );
+ add_action( 'manage_posts_custom_column', array( $this, 'post_columns_content' ), 10, 2 );
+ add_filter( 'manage_pages_columns', array( $this, 'post_columns' ) );
+ add_action( 'manage_pages_custom_column', array( $this, 'post_columns_content' ), 10, 2 );
+ foreach( $wpmem->post_types as $key => $val ) {
+ add_filter( 'manage_' . $key . '_posts_columns', array( $this, 'post_columns' ) );
+ add_action( 'manage_' . $key . '_posts_custom_column', array( $this, 'post_columns_content' ), 10, 2 );
+ }
+
+ add_filter( 'wpmem_user_profile_tabs', array( $this, 'user_profile_tabs' ), 1 );
+ add_action( 'wpmem_user_profile_tabs_content', array( $this, 'user_profile_tab_content' ), 10 );
+
+ add_filter( 'wpmem_views_users', array( $this, 'user_views' ), 10, 2 );
+ add_filter( 'wpmem_query_where', array( $this, 'query_where' ), 10, 2 );
+ }
+
+ $this->default_products = $wpmem->membership->get_default_products();
+ }
+
+ /**
+ * Column headings for list table.
+ *
+ * @since 3.2.0
+ *
+ * @param array $columns
+ * @return array $columns
+ */
+ function columns_heading( $columns ) {
+ unset( $columns['date'] );
+ $columns['slug'] = __( 'Slug', 'wp-members' );
+ $columns['role'] = __( 'Role', 'wp-members' );
+ $columns['expires'] = __( 'Expires', 'wp-members' );
+ if ( $this->default_products ) {
+ $columns['default_products'] = __( 'Default', 'wp-members' );
+ }
+ $columns['last_updated'] = __( 'Last updated', 'wp-members' );
+ return $columns;
+ }
+
+ /**
+ * Column content for list table.
+ *
+ * @since 3.2.0
+ *
+ * @param string $column_name
+ * @param int $post_id
+ */
+ function columns_content( $column, $post_id ) {
+ $post = get_post( $post_id );
+ switch ( $column ) {
+ case 'slug':
+ echo $post->post_name;
+ break;
+ case 'role':
+ $role_slug = $this->get_meta( 'wpmem_product_role' );
+ if ( $role_slug ) {
+ $wp_roles = new WP_Roles;
+ $names = $wp_roles->get_names();
+
+ $role = $names[ $role_slug ] . ' (' . __( 'slug:', 'wp-members' ) . ' ' . $role_slug . ')';
+ echo esc_html( $role );
+ } else {
+ __( 'No role required', 'wp-members' );
+ }
+ break;
+ case 'expires':
+ $expires = $this->get_meta( 'wpmem_product_expires' );
+ $period = ( false !== $expires ) ? explode( "|", $expires[0] ) : __( 'Does not expire', 'wp-members' );
+ echo ( is_array( $period ) ) ? esc_html( $period[0] . ' ' . $period[1] ) : esc_html( $period );
+ break;
+ case 'default_products':
+ echo ( in_array( $post->post_name, $this->default_products ) ) ? __( 'Yes', 'wp-members' ) : '';
+ break;
+ case 'last_updated':
+ echo date_i18n( get_option( 'date_format' ), strtotime( esc_attr( $post->post_modified ) ) );
+ break;
+ }
+ }
+
+ /**
+ * Gets value of requested post meta.
+ *
+ * @since 3.2.0
+ *
+ * @param string $value
+ * @return string
+ */
+ function get_meta( $value ) {
+ global $post;
+ $field = get_post_meta( $post->ID, $value, true );
+ if ( ! empty( $field ) ) {
+ return is_array( $field ) ? stripslashes_deep( $field ) : stripslashes( wp_kses_decode_entities( $field ) );
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Handles meta boxes for CPT editor.
+ *
+ * @since 3.2.0
+ * @since 3.3.4 Added message meta box.
+ */
+ function meta_boxes() {
+ remove_meta_box( 'slugdiv', 'wpmem_product', 'normal' );
+ add_meta_box(
+ 'membership_product',
+ __( 'Membership Product Details', 'wp-members' ),
+ array( $this, 'details_html' ),
+ 'wpmem_product',
+ 'normal',
+ 'high'
+ );
+ add_meta_box(
+ 'membership_product_message',
+ __( 'Membership Product Message (optional)', 'wp-members' ),
+ array( $this, 'message_meta_box_detail' ),
+ 'wpmem_product'
+ );
+ }
+
+ /**
+ * Adds child membership access option to Membership Attributes meta box.
+ *
+ * @since 3.4.1
+ */
+ function membership_attributes( $post ) {
+ if ( 'wpmem_product' == $post->post_type ) {
+ $checked = get_post_meta( $post->ID, 'wpmem_product_child_access', true );
+ echo '
+
+
+
';
+ }
+ }
+
+ /**
+ * Gets an array of post types.
+ *
+ * @since 3.3.3
+ *
+ * @return array $post_types
+ */
+ function get_post_types() {
+ global $wpmem;
+ // @todo This comes from option tab. Should consider it being an api function.
+ $post_arr = array(
+ 'post' => __( 'Posts' ),
+ 'page' => __( 'Pages' ),
+ );
+ if ( ! empty( $wpmem->post_types ) ) {
+ foreach ( $wpmem->post_types as $key => $post_type ) {
+ $post_arr[ $key ] = $post_type;
+ }
+ }
+ return $post_arr;
+ }
+
+ /**
+ * Outputs HTML for CPT editor.
+ *
+ * @since 3.2.0
+ *
+ * @param object $post
+ */
+ function details_html( $post ) {
+
+ $product_default = $this->get_meta( 'wpmem_product_default' );
+ $product_expires = $this->get_meta( 'wpmem_product_expires' );
+ $product_role = $this->get_meta( 'wpmem_product_role' );
+ $product_no_gap = $this->get_meta( 'wpmem_product_no_gap' );
+ $product_fixed_period = $this->get_meta( 'wpmem_product_fixed_period' );
+
+ $product_expires = ( false !== $product_expires ) ? $product_expires[0] : $product_expires;
+
+ $periods = array( __( 'Period', 'wp-members' ) . '|', __( 'Day', 'wp-members' ) . '|day', __( 'Week', 'wp-members' ) . '|week', __( 'Month', 'wp-members' ) . '|month', __( 'Year', 'wp-members' ) . '|year' );
+ $show_role_detail = ( false !== $product_role ) ? 'show' : 'hide';
+ $show_exp_detail = ( false !== $product_expires ) ? 'show' : 'hide';
+ $show_exp_fixed = ( false !== $product_fixed_period ) ? 'show' : 'hide';
+
+ /**
+ * Fires before membership product detail meta box.
+ *
+ * @since 3.3.5
+ */
+ do_action( 'wpmem_membership_product_meta_before' ); ?>
+
+
+
+ post_name ); ?>
+
+
+ />
+
+
+
+ get_post_types() as $key => $post_type ) {
+ echo '
';
+ echo 'get_meta( "wpmem_product_set_default_" . $key ) ) ? 'checked' : ''; echo ' />';
+ echo '';
+ echo '';
+ }
+
+ ?>
+
+
+
+ />
+
+
+
+
+
+ />
+
+
+
+
+
+
+ 'wpmem_product_time_period', 'type'=>'select', 'value'=>$periods, 'compare'=>( ( isset( $period[1] ) ) ? $period[1] : '' ) ) ); ?>
+
+
+ 'wpmem_product_no_gap', 'type'=>'checkbox', 'value'=>'1', 'compare'=>( ( isset( $product_no_gap ) ) && 1 == $product_no_gap ) ? $product_no_gap : '' ) ); ?>
+
+
+
+ 'wpmem_product_fixed_period', 'type'=>'checkbox', 'value'=>'1', 'compare'=>( false != $product_fixed_period ) ? 1 : '' ) ); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'wpmem_product_fixed_period_grace_period', 'type'=>'select', 'value'=>$periods, 'compare'=>( ( isset( $period_grace_per ) ) ? $period_grace_per : '' ) ) ); ?>
+
+
+
+
+
+
+
+ ID, 'wpmem_product_message', true );
+ $message = ( $product_message ) ? $product_message : '';
+ /**
+ * Fires before membership product message meta box.
+ *
+ * @since 3.3.5
+ */
+ do_action( 'wpmem_membership_product_message_meta_before' );
+
+ echo '' . __( 'Restricted Message (displays when a user does not have access to a membership)', 'wp-members' ) . '
';
+
+ $args = array(
+ 'media_buttons' => false,
+ 'textarea_rows' => 10,
+ );
+
+ wp_editor( $message, 'product_message', $args );
+
+ /**
+ * Fires after membership product messate meta box.
+ *
+ * @since 3.3.5
+ */
+ do_action( 'wpmem_membership_product_message_meta_after' );
+ }
+
+ /**
+ * Saves meta fields for CPT
+ *
+ * @since 3.2.0
+ * @since 3.3.4 Added message meta.
+ *
+ * @param int $post_id
+ */
+ function save_details( $post_id ) {
+
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
+ if ( ! isset( $_POST['wpmem_product_nonce'] ) || ! wp_verify_nonce( $_POST['wpmem_product_nonce'], '_wpmem_product_nonce' ) ) return;
+ if ( ! current_user_can( 'edit_posts', $post_id ) ) return;
+
+ $post = get_post( $post_id );
+
+ $product_name = wpmem_get( 'wpmem_product_name', false );
+ $product_name = ( $product_name ) ? $product_name : $post->post_name;
+ update_post_meta( $post_id, 'wpmem_product_name', sanitize_text_field( $product_name ) );
+
+ $product_default = wpmem_get( 'wpmem_product_default', false );
+ update_post_meta( $post_id, 'wpmem_product_default', ( ( $product_default ) ? true : false ) );
+
+ $role_required = wpmem_get( 'wpmem_product_role_required', false );
+ if ( ! $role_required ) {
+ update_post_meta( $post_id, 'wpmem_product_role', false );
+ } else {
+ update_post_meta( $post_id, 'wpmem_product_role', sanitize_text_field( wpmem_get( 'wpmem_product_role' ) ) );
+ }
+
+ $expires = wpmem_get( 'wpmem_product_expires', false );
+ if ( ! $expires ) {
+ update_post_meta( $post_id, 'wpmem_product_expires', false );
+ } else {
+ $number = sanitize_text_field( wpmem_get( 'wpmem_product_number_of_periods' ) );
+ $period = sanitize_text_field( wpmem_get( 'wpmem_product_time_period' ) );
+ $no_gap = sanitize_text_field( wpmem_get( 'wpmem_product_no_gap' ) );
+ $expires_array = array( $number . "|" . $period );
+ update_post_meta( $post_id, 'wpmem_product_expires', $expires_array );
+ if ( $no_gap ) {
+ update_post_meta( $post_id, 'wpmem_product_no_gap', 1 );
+ } else {
+ delete_post_meta( $post_id, 'wpmem_product_no_gap' );
+ }
+
+ $fixed_period = sanitize_text_field( wpmem_get( 'wpmem_product_fixed_period' ) );
+ if ( $fixed_period ) {
+
+ // Start and end.
+ $period_start = sanitize_text_field( wpmem_get( 'wpmem_product_fixed_period_start' ) );
+ $period_end = sanitize_text_field( wpmem_get( 'wpmem_product_fixed_period_end' ) );
+
+ // Is there an entry grace period?
+ $grace_number = sanitize_text_field( wpmem_get( 'wpmem_product_fixed_period_grace_number', false ) );
+ $grace_period = sanitize_text_field( wpmem_get( 'wpmem_product_fixed_period_grace_period', false ) );
+ $save_fixed_period = $period_start . '-' . $period_end;
+ if ( $grace_number && $grace_period ) {
+ $save_fixed_period .= '-' . $grace_number . '-' . $grace_period;
+ }
+ update_post_meta( $post_id, 'wpmem_product_fixed_period', $save_fixed_period );
+ } else {
+ delete_post_meta( $post_id, 'wpmem_product_fixed_period' );
+ }
+ }
+
+ foreach( $this->get_post_types() as $key => $post_type ) {
+ if ( false !== wpmem_get( 'wpmem_product_set_default_' . $key, false ) ) {
+ update_post_meta( $post_id, 'wpmem_product_set_default_' . $key, 1 );
+ } else {
+ delete_post_meta( $post_id, 'wpmem_product_set_default_' . $key );
+ }
+ }
+
+ $product_message = wp_kses_post( wpmem_get( 'product_message', false ) );
+ if ( false !== $product_message ) {
+ if ( '' != $product_message ) {
+ update_post_meta( $post_id, 'wpmem_product_message', $product_message );
+ } else {
+ delete_post_meta( $post_id, 'wpmem_product_message' );
+ }
+ }
+
+ $child_access = intval( wpmem_get( 'wpmem_product_child_access', 0 ) );
+ if ( 1 == $child_access ) {
+ update_post_meta( $post_id, 'wpmem_product_child_access', $child_access );
+ } else {
+ delete_post_meta( $post_id, 'wpmem_product_child_access' );
+ }
+ }
+
+ /**
+ * Add dropdown to post and page meta box for marking access by product..
+ *
+ * @since 3.2.0
+ * @since 3.3.3 Added defaults.
+ *
+ * @global object $pagenow
+ * @global object $wpmem
+ * @param object $post
+ * @param string $block
+ */
+ function add_product_to_post( $post, $block ) {
+ global $pagenow, $wpmem;
+
+ // For checking default memberships.
+ $is_new = ( 'post-new.php' == $pagenow ) ? true : false;
+
+ $product = $wpmem->membership->get_post_products( $post->ID ); //get_post_meta( $post->ID, $wpmem->membership->post_meta, true );
+ $product = ( $product ) ? $product : array();
+ $values[] = __( 'None', 'wp-members' ) . '|';
+
+ foreach ( $wpmem->membership->products as $key => $value ) {
+
+ if ( $is_new ) {
+ if ( isset( $value[ 'set_default_' . $post->post_type ] ) && 1 == $value[ 'set_default_' . $post->post_type ] ) {
+ $product[] = $key;
+ }
+ }
+
+ $values[] = $value['title'] . '|' . $key;
+ }
+
+ echo wpmem_form_label( array(
+ 'meta_key'=>$wpmem->membership->post_meta,
+ 'label'=>__( 'Restrict access by membership:', 'wp-members' ),
+ 'type'=> 'multiselect'
+ ) );
+ echo "
";
+ echo wpmem_form_field( array(
+ 'name' => $wpmem->membership->post_meta,
+ 'type' => 'multiselect',
+ 'value' => $values,
+ 'compare' => $product,
+ 'class' => 'wpmem-product-select2 populate placeholder',
+ ) );
+ }
+
+ /**
+ * Save custom post meta for access by product.
+ *
+ * @since 3.2.0
+ *
+ * @global object $wpmem
+ * @param object $post
+ */
+ function save_product_to_post( $post ) {
+ global $wpmem;
+ $products = wpmem_sanitize_array( wpmem_get( $wpmem->membership->post_meta ) );
+ $products = ( $products ) ? $products : array();
+ if ( empty( $products ) || ( 1 == count( $products ) && '' == $products[0] ) ) {
+ delete_post_meta( $post->ID, $wpmem->membership->post_meta );
+ } else {
+ update_post_meta( $post->ID, $wpmem->membership->post_meta, $products );
+ }
+ foreach ( $wpmem->membership->products as $key => $value ) {
+ if ( in_array( $key, $products ) ) {
+ update_post_meta( $post->ID, wpmem_get_membership_meta( $key ), 1 );
+ } else {
+ delete_post_meta( $post->ID, wpmem_get_membership_meta( $key ) );
+ }
+ }
+ }
+
+ /**
+ * Enqueue select2 JS.
+ *
+ * @since 3.2.3
+ */
+ function enqueue_select2() {
+ $screen = get_current_screen();
+ if ( $screen->base == 'post' && $screen->parent_base == 'edit' ) { ?>
+ .column-wpmem_product{ min-width:140px; width: 12%;}';
+ }
+ }
+
+ /**
+ * Add membership product column to post table.
+ *
+ * @since 3.2.4
+ *
+ * @global object $wpmem
+ * @param array $columns
+ * @return array $columns
+ */
+ function post_columns( $columns ){
+ global $wpmem;
+ $post_type = ( isset( $_REQUEST['post_type'] ) ) ? sanitize_text_field( $_REQUEST['post_type'] ) : 'post';
+ if ( $post_type == 'page' || $post_type == 'post' || array_key_exists( $post_type, $wpmem->post_types ) ) {
+ $product = array( 'wpmem_product' => __( 'Required Membership', 'wp-members' ) );
+ $columns = wpmem_array_insert( $columns, $product, 'wpmem_block', 'before' );
+ }
+ return $columns;
+ }
+
+ /**
+ * Membership product column data.
+ *
+ * @since 3.2.4
+ *
+ * @global object $wpmem
+ * @param string $column_name
+ * @param int $post_id
+ */
+ function post_columns_content( $column_name, $post_id ) {
+ if ( 'wpmem_product' == $column_name ) {
+ global $wpmem;
+ $post_products = $wpmem->membership->get_post_products( $post_id );
+ if ( $post_products ) {
+ foreach ( $post_products as $meta ) {
+ $display[] = wpmem_get_membership_name( $meta );
+ }
+ echo implode( ", ", $display );
+ }
+ }
+ }
+
+ /**
+ * Add membership product column to post table.
+ *
+ * @since 3.2.4
+ *
+ * @param array $columns
+ * @return array $columns
+ */
+ function user_columns( $columns ) {
+ /**
+ * Filters the membership column name.
+ *
+ * @since 3.3.5
+ *
+ * @param string $column_name
+ */
+ $columns['wpmem_product'] = apply_filters( 'wpmem_user_columns_membership_title', __( 'Membership', 'wp-members' ) );
+ return $columns;
+ }
+
+ /**
+ * Membership product column data.
+ *
+ * @since 3.2.4
+ *
+ * @global object $wpmem
+ * @param string $column_name
+ * @param int $post_id
+ * @return array $display
+ */
+ function user_columns_content( $val, $column_name, $user_id ) {
+ /**
+ * Filter the users > all users screen membership column default html.
+ *
+ * @since 3.4.0
+ *
+ * @param array $defaults
+ * @param array $val
+ * @param array $column_name
+ * @param array $user_id
+ */
+ $defaults = apply_filters( 'wpmem_user_columns_membership_defaults', array(
+ 'item_wrap_before' => '',
+ 'item_wrap_after' => '',
+ ), $val, $column_name, $user_id );
+ if ( 'wpmem_product' == $column_name ) {
+ global $wpmem;
+ $display = array();
+ $user_products = $wpmem->user->get_user_products( $user_id );
+ if ( $user_products ) {
+ foreach ( $user_products as $meta => $value ) {
+ $expires = ( $user_products[ $meta ] > 1 ) ? '
' . __( 'expires:', 'wp-members' ) . ' ' . date_i18n( get_option( 'date_format' ), $user_products[ $meta ] ) : '';
+ $display[] = $defaults['item_wrap_before'] . wpmem_get_membership_name( $meta ) . $expires . $defaults['item_wrap_after'];
+ }
+ }
+ /**
+ * Filter the membership column value (per user).
+ *
+ * @since 3.3.5
+ *
+ * @param string $display
+ * @param array $display_rows
+ * @param int $user_id
+ * @param array $user_products
+ */
+ return apply_filters( 'wpmem_user_columns_membership_value', implode( " ", $display ), $display, $user_id, $user_products );
+ }
+ return $val;
+ }
+
+ /**
+ * Creates tab for user profile.
+ *
+ * @since
+ *
+ * @param array $tabs
+ */
+ function user_profile_tabs( $tabs ) {
+ $tabs['memberships'] = array(
+ 'tab' => __( 'Memberships', 'wp-members' ),
+ );
+ return $tabs;
+ }
+
+ /**
+ * Add user product access to user profile.
+ *
+ * @since 3.2.0
+ *
+ * @global string $pagenow
+ * @global object $wpmem
+ * @param string $key
+ */
+ public function user_profile_tab_content( $key ) {
+ // If product enabled
+ if ( 'memberships' == $key ) {
+ global $pagenow, $wpmem;
+ /*
+ * If an admin is editing their provile, we need their ID,
+ * otherwise, it's the user_id param from the URL. It's a
+ * little more complicated than it sounds since you can't just
+ * check if the user is logged in, because the admin is always
+ * logged in when checking profiles.
+ */
+ $user_id = ( 'profile' == $pagenow && current_user_can( 'edit_users' ) ) ? get_current_user_id() : sanitize_text_field( wpmem_get( 'user_id', false, 'get' ) );
+ $user_products = wpmem_get_user_products( $user_id );
+ echo '' . __( 'Membership Access', 'wp-members' ) . '
';
+ if ( ! empty( $wpmem->membership->products ) ) {
+ $expires_heading = " ";
+ foreach( $wpmem->membership->products as $key => $value ) {
+ $expires_heading = ( ! empty( $value['expires'] ) ) ? __( 'Expires', 'wp-members' ) : $expires_heading;
+ }
+ echo '| ' . __( 'Action', 'wp-members' ) . ' | +' . __( 'Membership', 'wp-members' ) . ' | +' . __( 'Enabled?', 'wp-members' ) . ' | +' . $expires_heading . ' | +||||
|---|---|---|---|---|---|---|---|
| + | ' . $value['title'] . ' | '; + + // If user has date, display that; otherwise placeholder + $date_value = ( isset( $user_products[ $key ] ) && 1 != $user_products[ $key ] && 0 != $user_products[ $key ] && '' != $user_products[ $key ] ) ? date( 'Y-m-d', $user_products[ $key ] ) : ""; + $placeholder = ( ! isset( $user_products[ $key ] ) ) ? 'placeholder="' . __( 'Expiration date (optional)', 'wp-members' ) . '" ' : ''; + $product_date_field = ' '; + + if ( isset( $user_products[ $key ] ) ) { + echo ''; + if ( $user_products[ $key ] != 1 ) { + echo ' | ' . $product_date_field . ' | '; + } else { + echo ''; + } + } else { + if ( isset( $value['expires'] ) && ! empty( $value['expires'] ) ) { + echo ' | '; + echo ' | ' . $product_date_field . ' | '; + } else { + echo ''; + } + } + echo ' |
' . $strong_msg . '
' . $remain_msg . '
version; ?>
+
+
+
+
+
Find out how to get access to WP-Members private members forum, premium code snippets, tutorials, and add-on modules!
+
+
+ ™!
+ Chad Butler
+ ButlerBlog: RSS | Twitter
+ Copyright © 2006-
+ Premium support and installation service available at rocketgeek.com.
+
WP-Members installs some basic defaults to get you started. Be sure to review the plugin's default setup here. + There are links to related documentation in the plugin settings. There are also some helpful links below.
+There are premium plugin add-ons available as well as a discounted bundle.
+If you need additional assistance, consider a premium support subscription.
++ +
wpmem_dropin_folder filter.', 'wp-members' );
+ echo '%s
', $loc_info ); + printf( '%s
', $loc_desc ); + printf( ''; + echo '%s %s
', $description, $which_form ); + printf( ''; + echo '« ' . __( 'Return to Fields Table', 'wp-members' ) . '
'; + } + + $wpmem_newfields = $wpmem_fields; + + update_option( 'wpmembers_fields', $wpmem_newfields ); + $wpmem->forms->load_fields(); + return $did_update; + } + } + } + + /** + * Reorders form fields. + * + * @since 2.5.1 + * @since 3.1.8 Rebuilt for new List Table. + * @since 3.3.0 Merged do_field_reorder() and field_reorder(). + */ + public static function do_field_reorder() { + + // Start fresh. + $new_order = $wpmem_fields = $field = $key = $wpmem_new_fields = $id = $k = ''; + $wpmem_fields = get_option( 'wpmembers_fields' ); + + // Get the list items + $new_order = $_POST; + + // Put fields in the proper order for the current form. + $wpmem_new_fields = array(); + foreach ( $new_order['list_items'] as $id ) { + foreach( $wpmem_fields as $val ) { + if ( $val[0] == $id ) { + $wpmem_new_fields[] = $val; + } + } + } + + // Save fields array with new current form field order. + update_option( 'wpmembers_fields', $wpmem_new_fields ); + + // Indicate successful transaction. + _e( 'Form field order updated.', 'wp-members' ); + + die(); // This is required to return a proper result. + + } +} +// End of file. \ No newline at end of file diff --git a/includes/admin/tabs/class-wp-members-admin-tab-options.php b/includes/admin/tabs/class-wp-members-admin-tab-options.php new file mode 100644 index 00000000..99157961 --- /dev/null +++ b/includes/admin/tabs/class-wp-members-admin-tab-options.php @@ -0,0 +1,709 @@ +', '', '', '' ); + $help_link = sprintf( __( 'See the %sUsers Guide on plugin options%s.', 'wp-members' ), '', '' ); + + // Build an array of post types + $post_types = $wpmem->admin->post_types(); + $post_arr = array( + 'post' => __( 'Posts' ), + 'page' => __( 'Pages' ), + ); + if ( $post_types ) { + foreach ( $post_types as $post_type ) { + $cpt_obj = get_post_type_object( $post_type ); + $post_arr[ $cpt_obj->name ] = $cpt_obj->labels->name; + } + } ?> + + ++ ++ +
+ + +
+ $settings ) { + if ( isset( $settings['wcupdate'] ) && true == $settings['wcupdate'] ) { + $return_fields[ $meta ] = $settings; + } + } + return $return_fields; +} + +/** + * Handle custom fields for WooCommerce. + * + * @since Unknown + * + * @param string $field + * @param string $key The field's meta key. + * @param array $args + * @param string $value + * @param string $field + */ +function wpmem_form_field_wc_custom_field_types( $field, $key, $args, $value ) { + + $wpmem_fields = wpmem_fields(); + /** + * @type string $name (required) The field meta key. + * @type string $type (required) The field HTML type (url, email, image, file, checkbox, text, textarea, password, hidden, select, multiselect, multicheckbox, radio). + * @type string $value (optional) The field's value (can be a null value). + * @type string $compare (optional) Compare value. + * @type string $class (optional) Class identifier for the field. + * @type boolean $required (optional) If a value is required default: true). + * @type string $delimiter (optional) The field delimiter (pipe or comma, default: | ). + * @type string $placeholder (optional) Defines the placeholder attribute. + * @type string $pattern (optional) Adds a regex pattern to the field (HTML5). + * @type string $title (optional) Defines the title attribute. + * @type string $min (optional) Adds a min attribute (HTML5). + * @type string $max (optional) Adds a max attribute (HTML5). + * @type string $rows (optional) Adds rows attribute to textarea. + * @type string $cols (optional) Adds cols attribute to textarea. + */ + + // Let's only mess with WP-Members fields (in case another checkout fields plugin is used). + if ( array_key_exists( $key, $wpmem_fields ) ) { + + // If it is a checkbox. + if ( 'checkbox' == $wpmem_fields[ $key ]['type'] ) { + + if ( ! $_POST && $wpmem_fields[ $key ]['checked_default'] ) { + $field = str_replace( ' $key, + 'type' => $wpmem_fields[ $key ]['type'], + 'required' => $wpmem_fields[ $key ]['required'], + 'delimiter' => $wpmem_fields[ $key ]['delimiter'], + 'value' => $wpmem_fields[ $key ]['values'], + ); + + $field_html = wpmem_form_field( $field_args ); + $field_html = str_replace( 'class="' . $wpmem_fields[ $key ]['type'] . '"', 'class="' . $wpmem_fields[ $key ]['type'] . '" style="display:initial;"', $field_html ); + $field = '+ '; + $field .= $field_html; + $field .= '
'; + } + + } + + return $field; +} + +function wpmem_woo_reg_validate( $username, $email, $errors ) { + + $fields = wpmem_woo_checkout_fields(); + + unset( $fields['username'] ); + unset( $fields['password'] ); + unset( $fields['confirm_password'] ); + unset( $fields['user_email'] ); + unset( $fields['first_name'] ); + unset( $fields['last_name'] ); + + foreach ( $fields as $key => $field_args ) { + if ( 1 == $field_args['required'] && empty( $_POST[ $key ] ) ) { + $message = sprintf( __( '%s is a required field.', 'wp-members' ), '' . $field_args['label'] . '' ); + $errors->add( $key, $message ); + } + } + return $errors; +} + +function wpmem_is_reg_form_showing() { + global $wpmem; + return ( isset( $wpmem->reg_form_showing ) && true == $wpmem->reg_form_showing ) ? true : false; +} + +/** + * Returns the display value of certain field types. + * + * Some WP-Members field types may have a different "saved" value and + * "displayed" value. This function provides a simple way to get the displayed + * value for a field based on the saved value. + * + * @since 3.4.0 + * @since 3.4.2 Cleanup, completed support for all field types. + * + * @param string $field_meta The meta key for the requested field. + * @param string $value The value to convert (empty for checkbox). + * @param boolean $echo Whether to echo or return the value (default: false). + * @return string + */ +function wpmem_field_display_value( $field_meta, $value = '', $echo = false ) { + $fields = wpmem_fields(); + $type = $fields[ $field_meta ]['type']; + + $display_value = ( 'checkbox' == $type ) ? $fields[ $field_meta ]['label'] : $fields[ $field_meta ]['options'][ $value ]; + + /** + * Filter the value. + * + * @since 3.4.0 + * + * @param string $display_value + * @param string $field_meta + * @param string $type + */ + $display_value = apply_filters( 'wpmem_' . $type . '_field_display', $display_value, $field_meta, $type ); + if ( $echo ) { + echo $display_value; + } else { + return $display_value; + } +} + +function wpmem_checkbox_field_display( $field_meta, $echo = false ) { + return wpmem_field_display_value( $field_meta, '', $echo ); +} + +function wpmem_select_field_display( $field_meta, $value, $echo = false ) { + return wpmem_field_display_value( $field_meta, $value, $echo ); +} \ No newline at end of file diff --git a/includes/api/api-products.php b/includes/api/api-products.php new file mode 100644 index 00000000..48eb716e --- /dev/null +++ b/includes/api/api-products.php @@ -0,0 +1,381 @@ +membership->get_all_posts( $membership_key ); +} + +/** + * Gets the membership products for a given post. + * + * @since 3.3.7 + * @since 3.4.5 Alias of wpmem_get_post_memberships(). + * + * @global stdClass $wpmem + * @param integer $post_id + * @return array + */ +function wpmem_get_post_products( $post_id ) { + return wpmem_get_post_memberships( $post_id ); +} + +/** + * Gets the membership products for a given post. + * + * @since 3.4.5 + * + * @global stdClass $wpmem + * @param integer $post_id + * @return array + */ +function wpmem_get_post_memberships( $post_id ) { + global $wpmem; + return $wpmem->membership->get_post_products( $post_id ); +} + +/** + * Gets access message if user does not have required membership. + * + * @since 3.4.0 + * + * @global stdClass $wpmem + * @param array $post_products + * @return string $message + */ +function wpmem_get_access_message( $post_products ) { + global $wpmem; + return $wpmem->membership->get_access_message( $post_products ); +} + +/** + * Gets all memberships for the site. + * Alias of wpmem_get_memberships(). + * + * @since Unknown + * + * @return array + */ +function wpmem_get_products() { + return wpmem_get_memberships(); +} + +/** + * Gets all memberships for the site. + * + * @since Unknown + * + * @return array + */ +function wpmem_get_memberships() { + global $wpmem; + return ( ! empty( $wpmem->membership->products ) ) ? $wpmem->membership->products : false; +} + +/** + * Get array of memberships keyed by ID. + * + * @since Unknown + * + * return array + */ +function wpmem_get_memberships_ids() { + global $wpmem; + return array_flip( $wpmem->membership->product_by_id ); +} + +/** + * Get membership id by slug. + * + * @since 3.4.7 + * + * @param string $membership_slug + * @return int $ID + */ +function wpmem_get_membership_id( $membership_slug ) { + $membership = get_page_by_path( $membership_slug ); + return ( $membership ) ? $membership->ID: false; +} + +/** + * Get membership display title by slug. + * + * @since 3.4.5 + * + * @param string $membership_slug + * @return string Value of $wpmem->membership->products[ $membership_slug ]['title'] if set, otherwise, $membership_slug. + */ +function wpmem_get_membership_name( $membership_slug ) { + global $wpmem; + return ( isset( $wpmem->membership->products[ $membership_slug ]['title'] ) ) ? $wpmem->membership->products[ $membership_slug ]['title'] : $membership_slug; +} + +/** + * Get the membership name (slug) by membership ID. + * + * @since 3.4.7 + * + * @param int $membership_id The membership ID + * @return string The membership name/slug + */ +function wpmem_get_membership_slug( $membership_id ) { + return get_post_field( 'post_name', $membership_id ); +} + +/** + * Get meta key for membership (with stem). + * + * @since 3.4.5 + * + * @param string $membership_slug + * @return string + */ +function wpmem_get_membership_meta( $membership_slug ) { + global $wpmem; + return $wpmem->membership->post_stem . $membership_slug; +} + +/** + * Adds a membership to a post. + * + * @since 3.4.6 + * @since 3.4.7 Added $action param + * + * @param string $membership_meta + * @param int $post_id + * @param string $action Action to run (add|remove default:add) + */ +function wpmem_add_membership_to_post( $membership_meta, $post_id, $action = 'add' ) { + + global $wpmem; + + // Get existing post meta. + $post_memberships = get_post_meta( $post_id, $wpmem->membership->post_meta, true ); + + if ( 'remove' == $action ) { + // If we are removing, remove the meta key from the array. + if ( is_array( $post_memberships ) ) { + if ( ( $key = array_search( $membership_meta, $post_memberships ) ) !== false ) { + unset( $post_memberships[ $key ] ); + } + } + } else { + // If the post has membership restrictions already, add new membership requirement. + if ( is_array( $post_memberships ) ) { + if ( ! in_array( $membership_meta, $post_memberships ) ) { + $post_memberships[] = $membership_meta; + } + } else { + $post_memberships = array( $membership_meta ); + } + } + + // Update post meta with restriction info. + update_post_meta( $post_id, $wpmem->membership->post_meta, $post_memberships ); + + if ( 'remove' == $action ) { + delete_post_meta( $post_id, wpmem_get_membership_meta( $membership_meta ) ); + } else { + update_post_meta( $post_id, wpmem_get_membership_meta( $membership_meta ), 1 ); + } +} + +/** + * Removes a membership from a post. + * + * @since 3.4.7 + * + * @param string $membership_meta + * @param int $post_id + */ +function wpmem_remove_membership_from_post( $membership_meta, $post_id ) { + wpmem_add_membership_to_post( $membership_meta, $post_id, 'remove' ); +} + +/** + * Adds a membership to an array of post IDs. + * + * @since 3.4.6 + * @since 3.4.7 Added $action param + * + * @param string $membership_meta + * @param string|array $post_ids + * @param string $action Action to run (add|remove default:add) + */ +function wpmem_add_membership_to_posts( $membership_meta, $post_ids, $action = 'add' ) { + // Make sure $post_ids is an array (prepare comma separated values) + $posts_array = ( ! is_array( $post_ids ) ) ? explode( ",", $post_ids ) : $post_ids; + + if ( 'remove' == $action ) { + // Run wpmem_remove_membership_from_post() for each ID. + foreach ( $posts_array as $ID ) { + wpmem_remove_membership_from_post( $membership_meta, $ID ); + } + } else { + // Run wpmem_add_membership_to_post() for each ID. + foreach ( $posts_array as $ID ) { + wpmem_add_membership_to_post( $membership_meta, $ID ); + } + } +} + +/** + * Removes a membership from an array of post IDs. + * + * @since 3.4.7 + * + * @param string $membership_meta + * @param string|array $post_ids + */ +function wpmem_remove_membership_from_posts( $membership_meta, $post_ids ) { + wpmem_add_membership_to_posts( $membership_meta, $post_ids, 'remove' ); +} + +/** + * Create a membership. + * + * @since 3.4.6 + * + * @param array $args { + * Parameters for creating the membership CPT. + * + * @type string $title User readable name of membership. + * @type string $name Sanitized title of the membership to be used as the meta key. + * @type string $status Published status: publish|draft (default: publish) + * @type int $author User ID of membership author, Optional, defaults to site admin. + * @type array $meta_input + * Meta fields for membership CPT (not all are required). + * + * @type string $name The sanitized title of the membership. + * @type string $default + * @type string $role Roles if a role is required. + * @type string $expires Expiration period if used (num|per). + * @type int $no_gap If renewal is "no gap" renewal. + * @type string $fixed_period (start|end|grace_num|grace_per) + * @type int $set_default_{$key} + * @type string $message Custom message for restriction. + * @type int $child_access If membership hierarchy is used. + * } + * } + * @return mixed $post_id|WP_Error + */ +function wpmem_create_membership( $args ) { + + // Get the admin user for default post_author. + $admin_email = get_option( 'admin_email' ); + $admin_user = get_user_by( 'email', $admin_email ); + + // Set up post args. + $pre_postarr = array(); + foreach ( $args as $key => $value ) { + if ( 'meta_input' == $key ) { + foreach( $value as $meta_key => $meta_value ) { + $pre_postarr['meta_input'][ 'wpmem_product_' . $meta_key ] = $meta_value; + } + } else { + + // If parent is identified by slug. + if ( 'parent' == $key && ! is_int( $value ) ) { + $value = wpmem_get_membership_id( $value ); + } + + $pre_postarr[ 'post_' . $key ] = $value; + } + } + + // Setup defaults. + $default_args = array( + 'post_title' => '', + 'post_name' => ( isset( $pre_postarr['post_name'] ) ) ? sanitize_title( $pre_postarr['post_name'] ) : sanitize_title( $pre_postarr['post_title'] ), + 'post_status' => 'publish', + 'post_author' => $admin_user->ID, + 'post_type' => 'wpmem_product', + 'meta_input' => array( + 'wpmem_product_name' => ( isset( $pre_postarr['meta_input']['wpmem_product_name'] ) ) ? sanitize_title( $pre_postarr['meta_input']['wpmem_product_name'] ) : ( ( isset( $pre_postarr['post_name'] ) ) ? sanitize_title( $pre_postarr['post_name'] ) : sanitize_title( $pre_postarr['post_title'] ) ), + 'wpmem_product_default' => false, + 'wpmem_product_role' => false, + 'wpmem_product_expires' => false, + ), + ); + + /** + * Filter the defaults. + * + * @since 3.4.6 + * + * @param array $default_args { + * Mmembership CPT params for wp_insert_post(). + * + * @type string $post_title User readable name of membership. + * @type string $post_name Sanitized title of the membership to be used as the meta key. + * @type string $post_status Published status: publish|draft (default: publish) + * @type int $post_author User ID of membership author, Optional, defaults to site admin. + * @type string $post_type Should not change this: default: wpmem_product. + * @type array $meta_input + * Meta fields for membership CPT (not all are required). + * + * @type string $wpmem_product_name The sanitized title of the membership. + * @type string $wpmem_product_default + * @type string $wpmem_product_role Roles if a role is required. + * @type string $wpmem_product_expires Expiration period if used (num|per). + * + * The following are optional and are not passed in the default args but could be returned by filter. + * + * @type int $wpmem_product_no_gap If renewal is "no gap" renewal. + * @type string $wpmem_product_fixed_period (start|end|grace_num|grace_per) + * @type int $wpmem_product_set_default_{$wpmem_product_key} + * @type string $wpmem_product_message Custom message for restriction. + * @type int $wpmem_product_child_access If membership hierarchy is used. + * } + * } + */ + $default_args = apply_filters( 'wpmem_create_membership_defaults', $default_args ); + + if ( isset( $pre_postarr['meta_input']['wpmem_product_message'] ) ) { + $pre_postarr['meta_input']['wpmem_product_message'] = wp_kses_post( $pre_postarr['meta_input']['wpmem_product_message'] ); + } + + // Merge with defaults. + $postarr = rktgk_wp_parse_args( $pre_postarr, $default_args ); + + // Insert the new membership as a CPT. + $post_id = wp_insert_post( $postarr ); + + // wp_insert_post() returns post ID on success, WP_Error on fail. + return $post_id; +} \ No newline at end of file diff --git a/includes/api/api-settings.php b/includes/api/api-settings.php new file mode 100644 index 00000000..914578c8 --- /dev/null +++ b/includes/api/api-settings.php @@ -0,0 +1,67 @@ +{$parts[0]} ) ) { + return ( isset( $wpmem->{$parts[0]}[ $parts[1] ] ) && 1 == $wpmem->{$parts[0]}[ $parts[1] ] ) ? true : false; + } elseif ( is_object( $wpmem->{$parts[0]} ) ) { + return ( isset( $wpmem->{$parts[0]}->{$parts[1]} ) && 1 == $wpmem->{$parts[0]}->{$parts[1]} ) ? true : false; + } + } else { + return ( isset( $wpmem->{$option} ) && 1 == $wpmem->{$option} ) ? true : false; + } +} + +/** + * Checks if WooCommerce is active. + * + * @since 3.3.7 + * @since 3.4.0 Now an alias for rktgk_is_woo_active(). + * @since 3.4.6 Moved from api-utilities.php. + * + * @return boolean + */ +function wpmem_is_woo_active() { + return rktgk_is_woo_active(); +} + +/** + * Conditional test if moderated registration is enabled. + * + * @since 3.4.6 + * + * @return boolean + */ +function wpmem_is_mod_reg() { + return wpmem_is_enabled( 'mod_reg' ); +} + +/** + * Verbose alias of wpmem_is_mod_reg() + * + * @since 3.4.6 + * + * @return boolean + */ +function wpmem_is_registration_moderated() { + return wpmem_is_mod_reg(); +} + +function wpmem_is_act_link() { + return wpmem_is_enabled( 'act_link' ); +} + +function wpmem_is_confirmation_link_enabled() { + return wpmem_is_act_link(); +} \ No newline at end of file diff --git a/includes/api/api-users.php b/includes/api/api-users.php new file mode 100644 index 00000000..d9507a6a --- /dev/null +++ b/includes/api/api-users.php @@ -0,0 +1,1175 @@ +roles ) : $user->roles; + return ( $user ) ? $role : false; +} + +/** + * Checks if user has a particular role. + * + * Utility function to check if a given user has a specific role. Users can + * have multiple roles assigned, so it checks the role array rather than using + * the incorrect method of current_user_can( 'role_name' ). The function can + * check the role of the current user (default) or a specific user (if $user_id + * is passed). + * + * @since 3.1.1 + * @since 3.1.6 Include accepting an array of roles to check. + * @since 3.1.9 Return false if user is not logged in. + * @since 3.2.0 Change return false to not logged in AND no user id. + * @since 3.4.5 $current_user no longer necessary. + * @since 3.4.6 $wpmem global is no longer necessary. + * + * @param string|array $role Slug or array of slugs of the role being checked. + * @param int $user_id ID of the user being checked (optional). + * @return boolean $has_role True if user has the role, otherwise false. + */ +function wpmem_user_has_role( $role, $user_id = false ) { + if ( ! is_user_logged_in() && ! $user_id ) { + return false; + } + $has_role = false; + $user = ( $user_id ) ? get_userdata( $user_id ) : wp_get_current_user(); + if ( is_array( $role ) ) { + foreach ( $role as $r ) { + if ( in_array( $r, $user->roles ) ) { + return true; + } + } + } else { + return ( in_array( $role, $user->roles ) ) ? true : $has_role; + } +} + +/** + * Gets user meta. + * + * It may seem like WP already has this feature. And it does. But most user meta + * are single, and WP's get_user_meta() defaults to "false" for the $single + * argument. This function provides a shorthand that assumes a string value for + * the meta result and drops the $single argument. + * + * @since 3.3.0 + * + * @param int $user_id + * @param string $meta_key + * @return string $result + */ +function wpmem_get_user_meta( $user_id, $meta_key ) { + return get_user_meta( $user_id, $meta_key, true ); +} + +/** + * Get a user meta checkbox label as value if checked. + * + * @since 3.4.2 + * + * @param int $user_id + * @param string $meta_key + * @return string $result + */ +function wpmem_get_user_meta_checkbox( $user_id, $meta_key ) { + $value = wpmem_get_user_meta( $user_id, $meta_key ); + return wpmem_checkbox_field_display( $value ); +} + +/** + * Get a user meta select (dropdown) value. + * + * @since 3.4.2 + * + * @param int $user_id + * @param string $meta_key + * @return string $result + */ +function wpmem_get_user_meta_select( $user_id, $meta_key ) { + $value = wpmem_get_user_meta( $user_id, $meta_key ); + return wpmem_select_field_display( $meta_key, $value ); +} + +/** + * Get a user meta radio value. + * Alias of wpmem_get_user_meta_select() for radio field type. + * + * @since 3.4.2 + * + * @param int $user_id + * @param string $meta_key + * @return string $result + */ +function wpmem_get_user_meta_radio( $user_id, $meta_key ) { + return wpmem_get_user_meta_select( $user_id, $meta_key ); +} + +/** + * Returns the meta value for a requested mutli-checkbox or multi-select + * field for a requested user ID. + * + * @since 3.4.2 + * + * @param int $user_id + * @param string $field_meta + * @param string $return_type (string|array default:string) + * @return string + */ +function wpmem_get_user_meta_multi( $user_id, $field_meta, $return_type = "string" ) { + $fields = wpmem_fields(); + $value = wpmem_get_user_meta( $user_id, $field_meta ); + $array = ( '' != $value && false != $value ) ? explode( $fields[ $field_meta ]['delimiter'], $value ) : array(); + if ( ! empty( $array ) && count( $array ) > 1 ) { + foreach ( $array as $val ) { + $display_values[] = wpmem_field_display_value( $field_meta, $val ); + } + $return_value = ( "array" == $return_type ) ? $display_values : implode( ", ", $display_values ); + } else { + $display_value = wpmem_field_display_value( $field_meta, $value ); + $return_value = ( "array" == $return_type ) ? array( $display_value ) : $display_value; + } + return $return_value; +} + +/** + * Checks if a user has a given meta value. + * + * @since 3.1.8 + * @since 3.3.0 Added wpmem_user_has_meta filter. + * @since 3.3.0 Added array check for multi-value fields (multicheckbox and multiselect). + * + * @global object $wpmem WP_Members object. + * + * @param string $meta Meta key being checked. + * @param string $value Value the meta key should have (optional). + * @param int $user_id ID of the user being checked (optional). + * @return boolean $has_meta True if user has the meta value, otherwise false. + */ +function wpmem_user_has_meta( $meta, $value = false, $user_id = false ) { + + global $wpmem; + + // Get the user ID. + $user_id = ( $user_id ) ? $user_id : get_current_user_id(); + + // Get field type. + $fields = wpmem_fields(); + $multi = ( ( isset( $fields[ $meta ] ) ) && ( 'multicheckbox' == $fields[ $meta ]['type'] || 'multiselect' == $fields[ $meta ]['type'] ) ) ? true : false; + + // Get meta. + $has_meta = false; + $user_value = get_user_meta( $user_id, $meta, true ); + + // Check meta. + if ( $value ) { + if ( $multi ) { + // Check array of values. + $user_value = explode( $fields[ $meta ]['delimiter'], $user_value ); + $has_meta = ( in_array( $value, $user_value ) ) ? true : $has_meta; + } else { + // Straight comparison. + $has_meta = ( $user_value == $value ) ? true : $has_meta; + } + } else { + // Check if the user has any meta value (regardless of actual value). + $has_meta = ( $user_value ) ? true : $has_meta; + } + + /** + * Filter the user has meta result. + * + * @since 3.3.0 + * + * @param bool $has_meta True if the user has the value, otherwise false. + * @param int $user_id The user ID being checked. + * @param string $user_value The user's stored meta value (false if none). + */ + return apply_filters( 'wpmem_user_has_meta', $has_meta, $user_id, $user_value ); +} + +/** + * Gets a user by meta key. + * + * @since 3.4.6 + * + * @global object $wpdb + * @param string $meta_key + * @param string $meta_value + * @return WP_User + */ +function wpmem_get_user_by_meta( $meta_key, $meta_value ) { + global $wpdb; + $sql = 'SELECT u1.ID, m1.meta_value + FROM ' . $wpdb->users . ' u1 + JOIN ' . $wpdb->usermeta . ' m1 ON (m1.user_id = u1.ID AND m1.meta_key = "' . esc_sql( $meta_key ) . '") + WHERE m1.meta_value = "' . esc_sql( $meta_value ) . '";'; + $user = $wpdb->get_row( $sql ); + return $user; +} + +/** + * Checks if a user is activated. + * + * @since 3.1.7 + * @since 3.2.3 Now an alias for WP_Members_Users::is_user_activated(). + * + * @global object $wpmem + * @param int $user_id + * @return bool + */ +function wpmem_is_user_activated( $user_id = false ) { + global $wpmem; + return $wpmem->user->is_user_activated( $user_id ); +} + +/** + * Gets an array of the user's registration data. + * + * Returns an array keyed by meta keys of the user's registration data for + * all fields in the WP-Members Fields. Returns the current user unless + * a user ID is specified. + * + * @since 3.2.0 + * + * @global object $wpmem + * @param integer $user_id + * @param bool $all + * @return array $user_fields + */ +function wpmem_user_data( $user_id = false, $all = false ) { + global $wpmem; + return $wpmem->user->user_data( $user_id, $all ); +} + +/** + * Updates a user's role. + * + * This is an alias for $wpmem->update_user_role(). It can add a role to a + * user, change or remove the user's role. If no action is specified it will + * change the role. + * + * @since 3.2.0 + * + * @global object $wpmem + * @param integer $user_id (required) + * @param string $role (required) + * @param string $action (optional add|remove|set default:set) + */ +function wpmem_update_user_role( $user_id, $role, $action = 'set' ) { + global $wpmem; + $wpmem->user->update_user_role( $user_id, $role, $action ); +} + +/** + * A function for checking user access criteria. + * + * @since 3.2.0 + * @since 3.2.3 Reversed order of arguments. + * + * @param mixed $membership Accepts a single membership slug/meta, or an array of multiple memberships. + * @param integer $user_id User ID (optional|default: false). + * @return boolean $access True if user has access, otherwise false. + */ +function wpmem_user_has_access( $membership, $user_id = false ) { + global $wpmem; + $user_id = ( false == $user_id ) ? get_current_user_id() : $user_id; + return $wpmem->user->has_access( $membership, $user_id ); +} + +/** + * Checks if user expiration is current. + * + * Similar to wpmem_user_has_access(), but specifically checks the + * expiration date for a specified membership (must be expiration product). + * + * Must be named _user_is_current() as _is_user_current() exists in PayPal extension. + * + * @since 3.4.0 + * + * @param string $membership The meta key of the + * @param integer $user_id The user ID to check. Optional. If not passed, the currently logged in user will be checked. + * @return boolean True if user is current (i.e. not expired), otherwise false. + */ +function wpmem_user_is_current( $membership, $user_id = false ) { + global $wpmem; + $user_id = ( false === $user_id ) ? get_current_user_id() : $user_id; + $memberships = wpmem_get_user_memberships( $user_id ); + return ( $wpmem->user->is_current( $memberships[ $membership ] ) ) ? true : false; +} + +/** + * An alias for wpmem_set_user_product(). + * + * @since 3.4.2 + */ +function wpmem_set_user_membership( $membership, $user_id = false, $date = false ) { + return wpmem_set_user_product( $membership, $user_id, $date ); +} + +/** + * An alias for wpmem_remove_user_product(). + * + * @since 3.4.2 + */ +function wpmem_remove_user_membership( $membership, $user_id = false ) { + return wpmem_remove_user_product( $membership, $user_id ); +} + +/** + * An alias for wpmem_get_user_products(). + * + * @since 3.4.2 + */ +function wpmem_get_user_memberships( $user_id = false ) { + return wpmem_get_user_products( $user_id ); +} + +/** + * Sets product access for a user. + * + * @since 3.2.3 + * @since 3.2.6 Added $date to set a specific expiration date. + * @since 3.4.2 Use wpmem_set_user_membership() instead. + * + * @global object $wpmem + * @param string $product The meta key of the product. + * @param int $user_id + * @param string $date Expiration date (optional) format: MySQL timestamp + * @return bool $result + */ +function wpmem_set_user_product( $product, $user_id = false, $date = false ) { + global $wpmem; + return $wpmem->user->set_user_product( $product, $user_id, $date ); +} + +/** + * Removes product access for a user. + * + * @since 3.2.3 + * @since 3.4.2 Use wpmem_remove_user_membership() instead. + * + * @global object $wpmem + * @param string $product + * @param int $user_id + */ +function wpmem_remove_user_product( $product, $user_id = false ) { + global $wpmem; + $wpmem->user->remove_user_product( $product, $user_id ); + return; +} + +/** + * Gets memberships a user has. + * + * @since 3.3.0 + * @since 3.4.2 Use wpmem_get_user_memberships() instead. + * + * @global stdClass $wpmem + * @param int $user_id + * @return array + */ +function wpmem_get_user_products( $user_id = false ) { + global $wpmem; + return ( $user_id ) ? $wpmem->user->get_user_products( $user_id ) : $wpmem->user->access; +} + +/** + * Get user expiration date + * + * @since 3.4.2 + * + * @param $product_key The membership slug being requested (optional: defaults to first membership in the array). + * @param $user_id The user ID (optional: defaults to current user). + * @param $format The date format to return (optional: defaults to raw epoch timestamp). + * @return $exp_date The expiration date unformatted (i.e. unix/epoch timestamp) (false if no date or membership does not exist for user). + */ +function wpmem_get_user_expiration( $product_key = false, $user_id = false, $format = false ) { + $user_id = ( false === $user_id ) ? get_current_user_id() : $user_id; + $memberships = wpmem_get_user_memberships( $user_id ); + $product_key = ( false == $product_key ) ? key( $memberships ) : $product_key; + $exp_date = ( is_numeric( $memberships[ $product_key ] ) ) ? $memberships[ $product_key ] : strtotime( $memberships[ $product_key ] ); + return $exp_date; +} + +/** + * Sets a user as logged in. + * + * @since 3.2.3 + * + * @global object $wpmem + * @param int $user_id + */ +function wpmem_set_as_logged_in( $user_id ) { + global $wpmem; + $wpmem->user->set_as_logged_in( $user_id ); +} + +if ( ! function_exists( 'wpmem_login' ) ): +/** + * Logs in the user. + * + * Logs in the the user using wp_signon (since 2.5.2). If login is + * successful, it will set a cookie using wp_set_auth_cookie (since 2.7.7), + * then it redirects and exits; otherwise "loginfailed" is returned. + * + * @since 0.1.0 + * @since 2.5.2 Now uses wp_signon(). + * @since 2.7.7 Sets cookie using wp_set_auth_cookie(). + * @since 3.0.0 Removed wp_set_auth_cookie(), this already happens in wp_signon(). + * @since 3.1.7 Now an alias for login() in WP_Members_Users Class. + * @since 3.2.4 Moved to user API (could be deprecated). + * + * @global object $wpmem + * @return string Returns "loginfailed" if the login fails. + */ +function wpmem_login() { + global $wpmem; + return $wpmem->user->login(); +} // End of login function. +endif; + +if ( ! function_exists( 'wpmem_logout' ) ): +/** + * Logs the user out then redirects. + * + * @since 2.0.0 + * @since 3.1.6 Added wp_destroy_current_session(), removed nocache_headers(). + * @since 3.1.7 Now an alias for logout() in WP_Members_Users Class. + * @since 3.2.4 Moved to user API (could be deprecated). + * + * @global object $wpmem + * @param string $redirect_to The URL to redirect to at logout. + */ +function wpmem_logout( $redirect_to = false ) { + global $wpmem; + $wpmem->user->logout( $redirect_to ); +} +endif; + +if ( ! function_exists( 'wpmem_change_password' ) ): +/** + * Handles user password change (not reset). + * + * @since 2.1.0 + * @since 3.1.7 Now an alias for password_update() in WP_Members_Users Class. + * @since 3.2.4 Moved to user API (could be deprecated). + * + * @global int $user_ID The WordPress user ID. + * + * @return string The value for $wpmem->regchk + */ +function wpmem_change_password() { + global $wpmem; + return $wpmem->user->password_update( 'change' ); +} +endif; + +if ( ! function_exists( 'wpmem_reset_password' ) ): +/** + * Resets a forgotten password. + * + * @since 2.1.0 + * @since 3.1.7 Now an alias for password_update() in WP_Members_Users Class. + * @since 3.2.4 Moved to user API (could be deprecated). + * + * @global object $wpmem The WP-Members object class. + * + * @return string The value for $wpmem->regchk + */ +function wpmem_reset_password() { + global $wpmem; + return $wpmem->user->password_update( 'reset' ); +} +endif; + +/** + * Handles retrieving a forgotten username. + * + * @since 3.0.8 + * @since 3.1.6 Dependencies now loaded by object. + * @since 3.1.8 Now an alias for $wpmem->retrieve_username() in WP_Members_Users Class. + * @since 3.2.4 Moved to user API (could be deprecated). + * + * @global object $wpmem The WP-Members object class. + * + * @return string $regchk The regchk value. + */ +function wpmem_retrieve_username() { + global $wpmem; + return $wpmem->user->retrieve_username(); +} + +/** + * Creates a membership number. + * + * @since 3.1.1 + * @since 3.2.0 Changed "lead" to "pad". + * + * @param array $args { + * @type string $option The wp_options name for the counter setting (required). + * @type string $meta_key The field's meta key (required). + * @type int $start Number to start with (optional, default 0). + * @type int $increment Number to increment by (optional, default 1). + * @type int $digits Number of digits for the number (optional). + * @type boolen $pad Pad leading zeros (optional, default true). + * } + * @return string $membersip_number + */ +function wpmem_create_membership_number( $args ) { + global $wpmem; + return $wpmem->api->generate_membership_number( $args ); +} + +/** + * Activates a user. + * + * If registration is moderated, sets the activated flag + * in the usermeta. Flag prevents login when $wpmem->mod_reg + * is true (1). Function is fired from bulk user edit or + * user profile update. + * + * @uses $wpdb WordPress Database object. + * + * @since 2.4 + * @since 3.1.6 Dependencies now loaded by object. + * @since 3.2.4 Renamed from wpmem_a_activate_user(). + * @since 3.3.0 Moved to user API. + * @since 3.3.5 Added $notify argument. + * @since 3.4.0 Added $set_pwd argument. + * + * @param int $user_id + * @param bool $notify Send notification to user (optional, default: true). + */ +function wpmem_activate_user( $user_id, $notify = true, $set_pwd = false ) { + + global $wpmem; + + // Define new_pass. + $new_pass = ''; + + // If passwords are user defined skip this. + if ( true == $set_pwd || ! wpmem_user_sets_password() ) { + $new_pass = wp_generate_password(); + wp_set_password( $new_pass, $user_id ); + } + + // @todo this should be taken out, use the wpmem_user_activated hook instead. + // If subscriptions can expire, and the user has no expiration date, set one. + if ( $wpmem->use_exp == 1 && ! get_user_meta( $user_id, 'expires', true ) ) { + if ( function_exists( 'wpmem_set_exp' ) ) { + wpmem_set_exp( $user_id ); + } + } + + // Generate and send user approved email to user. + if ( true === $notify ) { + wpmem_email_to_user( $user_id, $new_pass, 2 ); + } + + // Set the active flag in usermeta. + update_user_meta( $user_id, 'active', 1 ); + + /** + * Fires after the user activation process is complete. + * + * @since 2.8.2 + * + * @param int $user_id The user's ID. + */ + do_action( 'wpmem_user_activated', $user_id ); + + return; +} + +/** + * Deactivates a user. + * + * Reverses the active flag from the activation process + * preventing login when registration is moderated. + * + * @since 2.7.1 + * @since 3.2.4 Renamed from wpmem_a_deactivate_user(). + * @since 3.3.0 Moved to user API. + * + * @param int $user_id + */ +function wpmem_deactivate_user( $user_id ) { + update_user_meta( $user_id, 'active', 0 ); + + /** + * Fires after the user deactivation process is complete. + * + * @since 2.9.9 + * + * @param int $user_id The user's ID. + */ + do_action( 'wpmem_user_deactivated', $user_id ); +} + +/** + * Updates the user_status value in the wp_users table. + * + * @since Unknown + * @since 3.3.0 Moved to User API. + * + * @global object $wpdb + * + * @param int $user_id + * @param string $status + */ +function wpmem_set_user_status( $user_id, $status ) { + global $wpdb; + $wpdb->update( $wpdb->users, array( 'user_status' => $status ), array( 'ID' => $user_id ) ); + return; +} + +/** + * Register function. + * + * Handles registering new users and updating existing users. + * + * @since 2.2.1 + * @since 2.7.2 Added pre/post process actions. + * @since 2.8.2 Added validation and data filters. + * @since 2.9.3 Added validation for multisite. + * @since 3.0.0 Moved from wp-members-register.php to /inc/register.php. + * @since 3.3.0 Ported from wpmem_registration in /inc/register.php (now deprecated). + * + * @todo Review what should be in the API function and what should be moved to object classes. + * + * @global int $user_ID + * @global object $wpmem + * @global string $wpmem_themsg + * @global array $userdata + * + * @param string $tag Identifies 'register' or 'update'. + * @return string $wpmem_themsg|success|editsuccess + */ +function wpmem_user_register( $tag ) { + + // Get the globals. + global $user_ID, $wpmem, $wpmem_themsg, $userdata; + + $wpmem->user->register_validate( $tag ); + + // @todo Added as a fix for legacy versions of security extension and any wpmem_pre_register_data action that might null $wpmem_themsg. + if ( $wpmem_themsg ) { + return $wpmem_themsg; + } + + switch ( $tag ) { + + case "register": + + /** + * Filter registration data after validation before data insertion. + * + * @since 2.8.2 + * + * @param array $wpmem->user->post_data An array of the registration field data. + * @param string $tag A switch to indicate the action (new|edit). + */ + $wpmem->user->post_data = apply_filters( 'wpmem_register_data', $wpmem->user->post_data, 'new' ); + + /** + * Fires before any insertion/emails. + * + * This action is the final step in pre registering a user. This + * can be used for attaching custom validation to the registration + * process. It cannot be used for changing any user registration + * data. Use the wpmem_register_data filter for that. + * + * @since 2.7.2 + * + * @param array $wpmem->user->post_data The user's submitted registration data. + */ + do_action( 'wpmem_pre_register_data', $wpmem->user->post_data ); + + // If the _pre_register_data hook sends back an error message. + if ( $wpmem_themsg ) { + return $wpmem_themsg; + } + + // Main new user fields are ready. + $new_user_fields = array ( + 'user_pass' => $wpmem->user->post_data['password'], + 'user_login' => $wpmem->user->post_data['username'], + 'user_nicename' => $wpmem->user->post_data['user_nicename'], + 'user_email' => $wpmem->user->post_data['user_email'], + 'display_name' => $wpmem->user->post_data['display_name'], + 'nickname' => $wpmem->user->post_data['nickname'], + 'user_registered' => $wpmem->user->post_data['user_registered'], + 'role' => $wpmem->user->post_data['user_role'] + ); + + // Get any excluded meta fields. + $wpmem->excluded_meta = wpmem_get_excluded_meta( 'register' ); + + // Fields for wp_insert_user: user_url, first_name, last_name, description. + $new_user_fields_meta = array( 'user_url', 'first_name', 'last_name', 'description' ); + foreach ( $wpmem->fields as $meta_key => $field ) { + if ( in_array( $meta_key, $new_user_fields_meta ) ) { + if ( $field['register'] && ! in_array( $meta_key, $wpmem->excluded_meta ) ) { + $new_user_fields[ $meta_key ] = $wpmem->user->post_data[ $meta_key ]; + } + } + } + + // Inserts to wp_users table. + $user_id = wp_insert_user( $new_user_fields ); + + /** + * Fires after registration is complete. + * + * @since 2.7.1 + * @since 3.1.0 Added $fields + * @since 3.1.7 Changed $fields to $this->post_data + * @since 3.3.0 Moved to registration function. + * @since 3.3.8 Added $user parameter. + * + * @param array $wpmem->user->post_data The user's submitted registration data. + * @param int $user_id + */ + do_action( 'wpmem_register_redirect', $wpmem->user->post_data, $user_id ); + + // successful registration message + return "success"; + break; + + case "update": + + if ( $wpmem_themsg ) { + return "updaterr"; + exit(); + } + + /* + * Doing a check for existing email is not the same as a new reg. check first to + * see if it's different, then check if it is a valid address and it exists. + */ + global $current_user; wp_get_current_user(); + if ( isset( $wpmem->user->post_data['user_email'] ) ) { + if ( $wpmem->user->post_data['user_email'] != $current_user->user_email ) { + if ( email_exists( $wpmem->user->post_data['user_email'] ) ) { + return "email"; + exit(); + } + if ( in_array( 'user_email', $wpmem->fields ) && ! is_email( $wpmem->user->post_data['user_email']) ) { + $wpmem_themsg = wpmem_get_text( 'reg_valid_email' ); + return "updaterr"; + exit(); + } + } + } + + // If form includes email confirmation, validate that they match. + if ( array_key_exists( 'confirm_email', $wpmem->user->post_data ) && $wpmem->user->post_data['confirm_email'] != $wpmem->user->post_data ['user_email'] ) { + $wpmem_themsg = wpmem_get_text( 'reg_email_match' ); + return "updaterr"; + exit(); + } + + // Add the user_ID to the fields array. + $wpmem->user->post_data['ID'] = $user_ID; + + /** This filter is documented in register.php */ + $wpmem->user->post_data = apply_filters( 'wpmem_register_data', $wpmem->user->post_data, 'edit' ); + + /** + * Fires before data insertion. + * + * This action is the final step in pre updating a user. This + * can be used for attaching custom validation to the update + * process. It cannot be used for changing any user update + * data. Use the wpmem_register_data filter for that. + * + * @since 2.7.2 + * + * @param array $wpmem->user->post_data The user's submitted update data. + */ + do_action( 'wpmem_pre_update_data', $wpmem->user->post_data ); + + // If the _pre_update_data hook sends back an error message. + if ( $wpmem_themsg ){ + return "updaterr"; + } + + // A list of fields that can be updated by wp_update_user. + $native_fields = array( + 'user_nicename', + 'user_url', + 'user_email', + 'display_name', + 'nickname', + 'first_name', + 'last_name', + 'description', + 'role', + ); + $native_update = array( 'ID' => $wpmem->user->post_data['ID'] ); + + foreach ( $wpmem->fields as $meta_key => $field ) { + // If the field is not excluded, update accordingly. + if ( ! in_array( $meta_key, wpmem_get_excluded_meta( 'update' ) ) ) { + if ( 'file' != $field['type'] && 'image' != $field['type'] ) { + switch ( $meta_key ) { + + // If the field can be updated by wp_update_user. + case( in_array( $meta_key, $native_fields ) ): + if ( 1 == $field['profile'] ) { + // Prev value in prev_data array. + $wpmem->user->prev_data[ $meta_key ] = $current_user->{$meta_key}; + // Add to post_data array. + $wpmem->user->post_data[ $meta_key ] = ( isset( $wpmem->user->post_data[ $meta_key ] ) ) ? $wpmem->user->post_data[ $meta_key ] : ''; + // Add to native update for settings. + $native_update[ $meta_key ] = $wpmem->user->post_data[ $meta_key ]; + } + break; + + // If the field is password. + case( 'password' ): + // Do nothing. + break; + + // Everything else goes into wp_usermeta. + default: + if ( ( 'register' == $tag && true == $field['register'] ) || ( 'update' == $tag && true == $field['profile'] ) ) { + // Get existing value for prev_data array. + $wpmem->user->prev_data[ $meta_key ] = get_user_meta( $wpmem->user->post_data['ID'], $meta_key, true ); + // Update the value. + update_user_meta( $wpmem->user->post_data['ID'], $meta_key, $wpmem->user->post_data[ $meta_key ] ); + } + break; + } + } + } + } + + // Handle file uploads, if any. + if ( ! empty( $_FILES ) ) { + $wpmem->user->upload_user_files( $wpmem->user->post_data['ID'], $wpmem->fields ); + } + + // Update wp_update_user fields. + wp_update_user( $native_update ); + + /** + * Fires at the end of user update data insertion. + * + * @since 2.7.2 + * + * @param array $wpmem->user->post_data The user's submitted registration data. + * @param int $user_id + * @param array $wpmem->user->prev_data The data for the user prior to update (does not support file and image fields). + */ + do_action( 'wpmem_post_update_data', $wpmem->user->post_data, $wpmem->user->post_data['ID'], $wpmem->user->prev_data ); + + return "editsuccess"; exit(); + break; + } +} // End registration function. + +/** + * Get user IP address. + * + * From Pippin. + * @link https://gist.github.com/pippinsplugins/9641841 + * + * @since 3.3.0 + * @since 3.4.0 Now an alias for rktgk_get_user_ip(); + * + * @return string $ip. + */ +function wpmem_get_user_ip() { + /** + * Filter the IP result. + * + * @since 3.3.0 + * + * @param string $ip + */ + return apply_filters( 'wpmem_get_ip', rktgk_get_user_ip() ); +} + +/** + * Export all or selected users + * + * @since 2.9.7 + * @since 3.2.0 Updated to use fputcsv. + * @since 3.2.1 Added user data filters. + * @since 3.3.0 Call object class static method. + * @since 3.3.4 Moved into general API. + * + * @todo Move object class file to main /includes/ + * + * @global object $wpmem + * + * @param array $args array { + * Array of defaults for export. + * + * @type string $export The type of export (all|selected) + * @type string $filename + * @type array $fields { + * The array of export fields is keyed as 'meta_key' => 'heading value'. + * The array can include fields in the Fields tab, plus the following: + * + * @type int $ID ID from wp_users + * @type string $username user_login from wp_users + * @type string $user_nicename user_nicename + * @type string $user_url user_url + * @type string $display_name display_name + * @type int $active Whether the user is active/deactivated. + * @type string $exp_type If the PayPal extension is installed pending|subscrption (optional) + * @type string $expires If the PayPal extension is installed MM/DD/YYYY (optional) + * @type string $user_registered user_registered + * @type string $user_ip The IP of the user when they registered. + * @type string $role The user's role (or roles, if multiple). + * } + * @type array $exclude_fields @deprecated 3.4.0 + * @type boolean $entity_decode Whether HTML entities should be decoded (default: false) + * @type string $date_format A PHP readable date format (default: Y-m-d which results in YYYY-MM-DD) + * } + * @param array $users Array of user IDs to export. + */ +function wpmem_export_users( $args = array(), $users = array() ) { + global $wpmem; + include_once( $wpmem->path . 'includes/class-wp-members-user-export.php' ); + WP_Members_User_Export::export_users( $args, $users ); +} + +/** + * Gets user ID based on request. + * + * @since 3.3.5 + * + * @param mixed $user + * @return mixed + */ +function wpmem_get_user_id( $user ) { + $user_obj = wpmem_get_user_obj( $user ); + return ( is_object( $user_obj ) ) ? $user_obj->ID : false; +} + +/** + * Gets user object based on request. + * + * @since 3.3.5 + * + * @param mixed $user + * @return mixed + */ +function wpmem_get_user_obj( $user ) { + if ( is_numeric( $user ) ) { + $user_obj = get_userdata( $user ); + if ( $user_obj ) { + return $user_obj; + } + } + if ( strpos( $user, '@' ) ) { + $user_obj = get_user_by( 'email', $user ); + if ( $user_obj ) { + return $user_obj; + } + } + if ( is_string( $user ) ) { + $user_obj = get_user_by( 'login', $user ); + if ( $user_obj ) { + return $user_obj; + } + } + return false; +} + +/** + * Get all users by a meta value. + * + * @since 3.3.5 + * + * @param string $meta The meta key to search fo. + * @param string $value The meta value to search for (defaul:false). + * @return array $users An array of user IDs who have the requested meta. + */ +function wpmem_get_users_by_meta( $meta, $value = "EXISTS" ) { + $args = array( 'fields' => array( 'ID' ), 'meta_key' => $meta ); + if ( false === $value ) { + $args['meta_value'] = ''; + $args['meta_compare'] = 'NOT EXISTS'; + } elseif ( "EXISTS" === $value ) { + $args['meta_value'] = ''; + $args['meta_compare'] = '>'; + } else { + $args['meta_value'] = $value; + } + $results = get_users( $args ); + if ( $results ) { + foreach( $results as $result ) { + $users[] = $result->ID; + } + return $users; + } else { + return array(); + } +} + +/** + * Gets a list of all pending users. + * + * @since 3.3.5 + * + * @return array $users An array of user IDs where meta key "active" does not exist. + */ +function wpmem_get_pending_users() { + return wpmem_get_users_by_meta( 'active', false ); +} + +/** + * Gets a list of all activated users. + * + * @since 3.3.5 + * + * @return array $users An array of user IDs who have the meta key active=1 + */ +function wpmem_get_activated_users() { + return wpmem_get_users_by_meta( 'active', 1 ); +} + +/** + * Gets a list of all deactivated users. + * + * @since 3.3.5 + * + * @return array $users An array of users IDs who have the meta key active=0 + */ +function wpmem_get_deactivated_users() { + return wpmem_get_users_by_meta( 'active', 0 ); +} + +/** + * Sets a user as validated. + * + * @since 3.3.5 + * + * @param int $user_id + * @return void + */ +function wpmem_set_user_as_confirmed( $user_id ) { + global $wpmem; + $wpmem->act_newreg->set_as_confirmed( $user_id ); +} + +/** + * Sets user as unconfirmed (not validated). + * + * @since 3.3.8 + * + * @param int $user_id + * @return void + */ +function wpmem_set_user_as_unconfirmed( $user_id ) { + global $wpmem; + $wpmem->act_newreg->set_as_unconfirmed( $user_id ); +} + +/** + * Checks if a user is confirmed. + * + * @since 3.3.8 + * + * @global object $wpmem + * @param int $user_id + * @return bool + */ +function wpmem_is_user_confirmed( $user_id = false ) { + global $wpmem; + $user_id = ( false === $user_id ) ? get_current_user_id() : $user_id; + return ( get_user_meta( $user_id, $wpmem->act_newreg->validation_confirm, true ) ) ? true : false; +} + +/** + * Adds WP-Members custom fields to the WP Add New User form. + * + * @since 2.9.1 + * @since 3.4.0 Moved from admin.php + * + * @global stdClass $wpmem + */ +function wpmem_admin_add_new_user() { + global $wpmem; + // Output the custom registration fields. + echo $wpmem->forms->wp_newuser_form(); + return; +} + +/** + * Creates a username "placeholder" for the db from + * the user's email. + * + * @since 3.4.6 + * + * @param string $email + * @param array $fields Array of fields + * @return string $username + */ +function wpmem_create_username_from_email( $email, $fields = array() ) { + // If the WooCommerce function exists, use that. + if ( function_exists( 'wc_create_new_customer_username' ) ) { + return wc_create_new_customer_username( $email, $fields ); + } + if ( ! is_email( $email ) ) { + return false; + } + // Extract beginning of email for username + $parts = explode( "@", $email ); + $temp_user = $parts[0]; + + // Make sure it's a unique value. If not, add a number and retest. + if ( username_exists( $temp_user ) ) { + $i = 0; + do { + $i++; + $temp_user = $temp_user . $i; + } while ( username_exists( $temp_user ) ); + } + + return $temp_user; +} +// End of file. \ No newline at end of file diff --git a/includes/api/api-utilities.php b/includes/api/api-utilities.php new file mode 100644 index 00000000..38159c36 --- /dev/null +++ b/includes/api/api-utilities.php @@ -0,0 +1,304 @@ +do_securify(). + * + * @since 2.0.0 + * @since 3.0.0 Now an alias for $wpmem->do_securify(). + * @since 3.2.4 Moved to utility API (could be deprecated). + * + * @global object $wpmem The WP-Members object class. + * + * @param string $content Content of the current post. + * @return string $content Content of the current post or replaced content if post is blocked and user is not logged in. + */ +function wpmem_securify( $content = null ) { + global $wpmem; + return $wpmem->do_securify( $content ); +} +endif; + +/** + * Sets an array of user meta fields to be excluded from update/insert. + * + * @since 2.9.3 + * @since Unknown Now an alias for get_excluded_fields(). + * @since 3.3.9 excluded_fields() moved to forms object class. + * + * @param string $tag A tag so we know where the function is being used. + * @return array Array of fields to be excluded from the registration form. + */ +function wpmem_get_excluded_meta( $tag ) { + global $wpmem; + return $wpmem->forms->excluded_fields( $tag ); +} + +/** + * Forces a URL to be secure (ssl). + * + * @since 3.2.3 + * @since 3.4.0 Now an alias for rktgk_force_ssl() + * + * @param string $url URL to be make secure. + * @return string The secure URL. + */ +function wpmem_force_ssl( $url ) { + return rktgk_force_ssl( $url ); +} + +/** + * Log debugging errors. + * + * @since 3.1.2 + * @since 3.4.0 Now an alias for rktgk_write_log(). + * + * @param mixed (string|array|object) $log Information to write in the WP debug file. + */ +function wpmem_write_log( $log ) { + rktgk_write_log( $log ); +} + +/** + * String manipulation utility. + * + * Manipulates a given string based on the location of another string to return + * a requested part or parts of the original string. For extracting a string + * to get what is before or after, the returned result is a string. If the + * string is requested to be "split" by the needle string, an array containing + * the parts before, after, and the "needle" are returned. + * + * @since 3.2.0 + * @since 3.4.0 Now an alias for rktgk_get_sub_str(). + * + * @param string $needle + * @param string $haystack + * @param string $position (before|after|split default: 'after') + * @param boolean $keep_needle (default:true) + * @return string|array $new { + * An array of the original string, as split by the "needle" string. + * + * @type string $before + * @type string $after + * @type string $needle + * } + */ +function wpmem_get_sub_str( $needle, $haystack, $position = 'after', $keep_needle = true ) { + return rktgk_get_sub_str( $needle, $haystack, $position, $keep_needle ); +} + +if ( ! function_exists( 'wpmem_do_excerpt' ) ): +/** + * Creates an excerpt on the fly if there is no 'more' tag. + * + * @since 2.6 + * @since 3.2.3 Now an alias for WP_Members::do_excerpt(). + * + * @global object $wpmem The WP_Members object. + * + * @param string $content + * @return string $content + */ +function wpmem_do_excerpt( $content ) { + global $wpmem; + $content = $wpmem->do_excerpt( $content ); + return $content; +} +endif; + +if ( ! function_exists( 'wpmem_texturize' ) ): +/** + * Overrides the wptexturize filter. + * + * Currently only used for the login form to remove the', + 'wrapper_after' => '
', + 'user_login' => $user_login, + 'welcome' => wpmem_get_text( 'status_welcome' ), + 'logout_text' => wpmem_get_text( 'status_logout' ), + 'logout_link' => '%s', + 'separator' => ' | ', + ); + /** + * Filter the status message parts. + * + * @since 2.9.9 + * @since 3.4.0 Added $tag as a parameter (most often will be false). + * + * @param array $args { + * The components of the links. + * + * @type string $wrapper_before The wrapper opening tag (default:). + * @type string $wrapper_after The wrapper closing tag (default:
). + * @type string $user_login + * @type string $welcome + * @type string $logout_text + * @type string $logout_link + * @type string $separator + * } + * @param string $tag + */ + $args = apply_filters( 'wpmem_status_msg_args', $args, $tag ); + + // Assemble the message string. + $status = $args['wrapper_before'] + . sprintf( $args['welcome'], $args['user_login'] ) + . $args['separator'] + . sprintf( $args['logout_link'], $args['logout_text'] ) + . $args['wrapper_after']; + } + + if ( $echo ) { + echo $status; + } else { + return $status; + } +} + +/** + * Utility function to validate $_POST, $_GET, and $_REQUEST. + * + * While this function retrieves data, remember that the data should generally be + * sanitized or escaped depending on how it is used. + * + * @since 3.1.3 + * @since 3.4.0 Now an alias for rktgk_get(). + * + * @param string $tag The form field or query string. + * @param string $default The default value (optional). + * @param string $type post|get|request (optional). + * @return string + */ +function wpmem_get( $tag, $default = '', $type = 'post' ) { + return rktgk_get( $tag, $default, $type ); +} + +/** + * Compares wpmem_reg_page value with the register page URL. + * + * @since 3.1.4 + * @since 3.1.7 Added default of current page ID. + * + * @param string|int $check_page + * @return bool + */ +function wpmem_is_reg_page( $check = false ) { + if ( ! $check ) { + $check = get_the_ID(); + } else { + if ( ! is_int( $check ) ) { + global $wpdb; + $sql = "SELECT ID FROM $wpdb->posts WHERE post_name = '$check' AND post_status = 'publish' LIMIT 1"; + $arr = $wpdb->get_results( $sql, ARRAY_A ); + $check = $arr[0]['ID']; + } + } + $reg_page = wpmem_get( 'wpmem_reg_page' ); + $check_page = get_permalink( $check ); + return ( $check_page == $reg_page ) ? true : false; +} + +/** + * Creates a login/logout link. + * + * @since 3.1.6 + * + * @param array $args { + * Array of arguments to customize output. + * + * @type string $login_redirect_to The url to redirect to after login (optional). + * @type string $logout_redirect_to The url to redirect to after logout (optional). + * @type string $login_text Text for the login link (optional). + * @type string $logout_text Text for the logout link (optional). + * } + * @param boolean $echo (default: false) + * @return string $link + */ +function wpmem_loginout( $args = array(), $echo = false ) { + global $wpmem; + return $wpmem->loginout_args( $args ); +} + +/** + * Returns a URL to log a user out. + * + * @since 3.4.0 + * + * @return string Logout link. + */ +function wpmem_logout_link() { + /** + * Filter the log out link. + * + * @since 2.8.3 + * + * @param string The default logout link. + */ + return apply_filters( 'wpmem_logout_link', add_query_arg( 'a', 'logout' ) ); +} + +/** + * Wrapper to return a string from the get_text function. + * + * @since 3.4.0 + * + * @global object $wpmem The WP_Members object. + * @param string $str The string to retrieve. + * @param bool $echo Print the string (default: false). + * @return string $str The localized string. + */ +function wpmem_get_text( $str, $echo = false ) { + global $wpmem; + if ( $echo ) { + echo $wpmem->dialogs->get_text( $str ); + } else { + return $wpmem->dialogs->get_text( $str ); + } +} + +/** + * Gets requested dialog. + * + * @since 3.4.0 + * + * @note It is being relased now as tentative. + * There may be some changes to how this is applied. + * + * @todo What about wpmem_use_custom_dialog()? + * + * @global stdClass $wpmem + * @param string $tag + * @param string $custom + * @return + */ +function wpmem_get_display_message( $tag, $custom = false ) { + global $wpmem; + return $wpmem->dialogs->get_message( $tag, $custom ); +} + +/** + * Dispalays requested dialog. + * + * @note It is being relased now as tentative. + * There may be some changes to how this is applied. + * + * @since 3.2.0 + * @since 3.4.0 Now echos the message. Added $custom argument + * + * @todo What about wpmem_use_custom_dialog()? + * + * @global stdClass $wpmem + * @param string $tag + * @param string $custom + * @return + */ +function wpmem_display_message( $tag, $custom = false ) { + echo wpmem_get_display_message( $tag, $custom ); +} + +/** + * Wrapper to use custom dialog. + * + * @since 3.1.1 + * + * @param array $defaults Dialog message defaults from the wpmem_msg_defaults filter. + * @param string $tag The dialog tag/name. + * @param array $dialogs The dialog settings array (passed through filter). + * @return array $dialogs The dialog settings array (filtered). + */ +function wpmem_use_custom_dialog( $defaults, $tag, $dialogs ) { + $msg_string = ( is_array( $dialogs[ $tag ] ) ) ? $dialogs[ $tag ]['value'] : $dialogs[ $tag ]; + $defaults['msg'] = __( $msg_string, 'wp-members' ); + return $defaults; +} + +/** + * Wrapper function for adding custom dialogs. + * + * @since 3.1.1 + * @since 3.3.0 Moved to main API. + * + * @param array $dialogs Dialog settings array. + * @param string $tag Slug for dialog to be added. + * @param string $msg The dialog message. + * @param string $label Label for admin panel. + * @return array $dialogs Dialog settings array with prepped custom dialog added. + */ +function wpmem_add_custom_dialog( $dialogs, $tag, $msg, $label ) { + $msg = ( ! isset( $dialogs[ $tag ] ) ) ? $msg : $dialogs[ $tag ]; + $dialogs[ $tag ] = array( + 'name' => $tag, + 'label' => $label, + 'value' => $msg, + ); + return $dialogs; +} + +/** + * Gets an array of hidden post IDs. + * + * @since 3.3.1 + * + * @global stdClass $wpmem + * @return array + */ +function wpmem_get_hidden_posts() { + global $wpmem; + return $wpmem->get_hidden_posts(); +} + +/** + * Updates the hiddent posts array. + * + * @since 3.3.5 + * + * @global stdClass $wpmem + */ +function wpmem_update_hidden_posts() { + global $wpmem; + $wpmem->update_hidden_posts(); +} + +/** + * Conditional if REST request. + * + * @since 3.3.2 + * + * @global stdClass $wpmem + * @return boolean + */ +function wpmem_is_rest() { + global $wpmem; + return $wpmem->is_rest; +} + +/** + * Gets registration type. + * + * @since 3.3.5 + * + * @global stdClass $wpmem + * @param string $type (wpmem|native|add_new|woo|woo_checkout) + * @return boolean + */ +function wpmem_is_reg_type( $type ) { + global $wpmem; + return $wpmem->user->reg_type[ 'is_' . $type ]; +} + +/** + * Displays the post restricted message. + * + * @since 3.4.0 + * + * @return string + */ +function wpmem_restricted_message() { + global $wpmem; + return $wpmem->forms->add_restricted_msg(); +} + +/** + * Gets plugin url. + * + * @since 3.4.1 + * + * @global stdClass $wpmem + * @return string $wpmem->url + */ +function wpmem_get_plugin_url() { + global $wpmem; + return $wpmem->url; +} + +/** + * Gets plugin version. + * + * @since 3.4.1 + * + * @global stdClass $wpmem + * @return string $wpmem->version + */ +function wpmem_get_plugin_version() { + global $wpmem; + return $wpmem->version; +} + +/** + * Checks whether a WooCommerce product is purchasable. + * + * If a product is blocked or requires a membership, this function + * will return false if the user lacks the wpmem criteria to access. + * + * @since 3.4.7 + * + * @param boolean $is_purchasable + * @param object $product The WooCommerce product object. + */ +function wpmem_woo_is_purchasable( $is_purchasable, $product ) { + + // If product is blocked and or membership required, + // check access and return appropriate boolean. + + if ( ! is_user_logged_in() ) { + return false; + } + + if ( ! wpmem_user_has_access( wpmem_get_post_memberships( $product->get_id() ) ) ) { + return false; + } + + return $is_purchasable; +} +// End of file. \ No newline at end of file diff --git a/includes/api/index.php b/includes/api/index.php new file mode 100644 index 00000000..dc051a13 --- /dev/null +++ b/includes/api/index.php @@ -0,0 +1 @@ + $field ) { + $field_keys[ $field[2] ] = $key; + } + return $field_keys; + } + + /** + * Get select field display values. + * + * @since 3.1.1 + * + * @param string $meta_key The field's meta key. + * @return array $display_values { + * The field's display values in an array. + * Elements are stored_value => display value + * + * @type string The display value. + * } + */ + function get_select_display_values( $meta_key ) { + global $wpmem; + $keys = $this->get_field_keys_by_meta(); + $fields = wpmem_fields(); + $raw = $fields[ $keys[ $meta_key ] ][7]; + $delimiter = ( isset( $fields[ $keys[ $meta_key ][8] ] ) ) ? $fields[ $keys[ $meta_key ][8] ] : '|'; + $display_values = array(); + foreach ( $raw as $value ) { + $pieces = explode( $delimiter, trim( $value ) ); + if ( $pieces[1] != '' ) { + $display_values[ $pieces[1] ] = $pieces[0]; + } + } + return $display_values; + } + + /** + * Gets the display/label value of a field. + * + * @since 3.1.8 + * + * @param string $meta The field meta key. + * @param string $user_id The user's ID. + * @param string $value The field's value, if given. + * @return string $value The display value. + */ + function get_field_display_value( $meta, $user_id, $value = null ) { + global $wpmem; + $fields = ( isset( $wpmem->fields ) ) ? $wpmem->fields : wpmem_fields(); + $field = $fields[ $meta ]; + $value = ( $value ) ? $value : get_user_meta( $user_id, $meta, true ); + switch ( $field['type'] ) { + case 'multiselect': + case 'multicheckbox': + break; + case 'select': + case 'radio': + $value = $fields[ $meta ]['options'][ $value ]; + break; + case 'image': + case 'file': + $value = wp_get_attachment_url( $value ); + break; + } + return $value; + } + + /** + * Checks that a given user field value is unique. + * + * @since 3.1.1 + * + * @param string $key The field being checked. + * @param string $val The value to check. + * @return bool True if value if is unique. + */ + function is_user_value_unique( $key, $val ) { + + $fields = array( 'ID','user_login','user_pass','user_nicename','user_email','user_url','user_registered','user_activation_key','user_status','display_name' ); + // Do we need a meta query or not? + $is_meta = ( ! in_array( $key, $fields ) ) ? true : false; + + if ( $is_meta ) { + $args = array( 'meta_query' => array( array( + 'key' => $key, + 'value' => $val, + 'compare' => '=', + ) ) ); + } else { + $args = array( 'search' => $val, 'fields' => 'ID' ); + } + + $users = get_users( $args ); + + // If there is data in $users, the value is not unique. + return ( $users ) ? false : true; + } + + /** + * Checks counter for next available number and updates the counter. + * + * @since 3.1.1 + * + * @param string $option The wp_options name for the counter setting (required). + * @param int $start Number to start with (optional, default 0). + * @param int $increment Number to increment by (optional, default 1). + * @return int $number Next number in the series. + */ + function get_incremental_number( $option, $start = 0, $increment = 1 ) { + + // Get current number from settings + $number = get_option( $option ); + + // If there is no number, start with $start. + if ( ! $number ) { + $number = ( $start <= 0 ) ? $start : $start - $increment; + } + + // Increment the number and save the setting. + $number = $number + $increment; + update_option( $option, $number ); + + // Return the number. + return $number; + } + + /** + * Generates a unique membership number based on settings. + * + * @since 3.1.1 + * @since 3.2.0 Changed "lead" value to "pad". + * + * @param array $args { + * @type string $option The wp_options name for the counter setting (required). + * @type string $meta_key The field's meta key (required). + * @type int $start Number to start with (optional, default 0). + * @type int $increment Number to increment by (optional, default 1). + * @type int $digits Number of digits for the number (optional). + * @type boolen $pad Pad leading zeros (optional, default true). + * } + * @return string $mem_number + */ + function generate_membership_number( $args ) { + $defaults = array( + 'start' => 0, + 'increment' => 1, + 'digits' => 8, + 'pad' => true, + ); + $args = wp_parse_args( $args, $defaults ); + do { + // Generate the appropriate next number + $number = $this->get_incremental_number( $args['option'], $args['start'], $args['increment'] ); + + // Cast as string, not integer. + $mem_number = (string)$number; + + // Add leading zeros if less than three digits. + if ( strlen( $mem_number ) < $args['digits'] ) { + $mem_number = ( $args['pad'] ) ? str_pad( $mem_number, $args['digits'], '0', STR_PAD_LEFT ) : $mem_number; + } + } while ( true !== $this->is_user_value_unique( $args['meta_key'], $mem_number ) ); + return $mem_number; + } + + /** + * Checks if a given setting is set and enabled. + * + * @since 3.1.7 + * + * @global object $wpmem + * @param string $setting + * @return boolean + */ + function is_enabled( $setting ) { + return ( isset( $wpmem->{$setting} ) && $wpmem->{$setting} ) ? true : false; + } + +} // End of WP_Members_Utilties class. \ No newline at end of file diff --git a/includes/class-wp-members-captcha.php b/includes/class-wp-members-captcha.php new file mode 100644 index 00000000..faeda6d4 --- /dev/null +++ b/includes/class-wp-members-captcha.php @@ -0,0 +1,411 @@ +captcha; + switch ( $value ) { + case 0: + return "Disabled"; + break; + case 1: + case 3: + return "recaptcha_v2"; + break; + case 4: + return "recaptcha_v3"; + break; + case 5: + return "hcaptcha"; + break; + case 2: + default: + return "rs_captcha"; + break; + } + } + + /** + * Display a CAPTCHA. + * + * @since 3.3.4 + * @since 3.3.6 $type defaults to false, so captcha defaults to $wpmem setting. + * + * @param string $type Type of captcha to display. + * @param array $keys Google reCAPTCHA keys (if used). + */ + static function show( $type = false, $key = false ) { + if ( false === $type ) { + $type = self::type(); + } + if ( 'rs_captcha' == $type ) { + return self::rs_captcha(); + } elseif ( 'hcaptcha' == $type ) { + return self::hcaptcha( $key ); + } else { + return self::recaptcha( $key ); + } + } + + /** + * Create a hCaptcha form. + * + * @since 3.3.5 + * + * @param string $key Your hCaptcha API key. + * @return string $html The form HTML. + */ + static function hcaptcha( $key = false ) { + + if ( false === $key ) { + $opts = get_option( 'wpmembers_captcha' ); + $key = $opts['hcaptcha']['api_key']; + } + $html = ''; + $html .= ''; + /** This filter is defined in /includes/class-wp-members-captcha.php */ + return apply_filters( 'wpmem_captcha', $html ); + } + + /** + * Create reCAPTCHA form. + * + * @since 3.3.0 Replaces wpmem_inc_recaptcha(). + * @since 3.3.5 Accepts API public key for static use. + * + * @global stdCalss $wpmem + * @param string $key Your reCAPTCHA public key. + * @return string $html HTML for reCAPTCHA display. + */ + static function recaptcha( $key = false ) { + + global $wpmem; + + if ( false == $key ) { + $opts = get_option( 'wpmembers_captcha' ); + $key = $opts['recaptcha']['public']; + } + + /** + * Filters the URL used for google recaptcha API. + * + * @since 3.4.2 + * + * @param string $url + */ + $wpmem_recaptcha_url = apply_filters( 'wpmem_recaptcha_url', 'https://www.google.com/recaptcha/api.js' ); + + if ( 3 == $wpmem->captcha ) { + $html = ' + '; + } else { + $html = ''; + $html.= ""; + $html.= ''; + } + + /** + * Filter the reCAPTCHA HTML. + * + * @since 2.7.4 + * @deprecated 3.3.5 Use wpmem_captcha instead. + * + * @param string $html A string of HTML for the reCAPTCHA. + */ + $html = apply_filters( 'wpmem_recaptcha', $html ); + + /** + * Filter the captcha HTML. + * + * @since 3.3.5 + * + * @param string $html A string of HTML for the registration captcha. + */ + return apply_filters( 'wpmem_captcha', $html ); + } + + /** + * Create Really Simple CAPTCHA. + * + * @since 3.3.0 Replaces wpmem_build_rs_captcha(). + * + * @global object $wpmem The WP_Members object. + * @return string|array { + * HTML string, OR array of form elements for Really Simple CAPTCHA. + * + * @type string label_text The raw text used for the label. + * @type string label The HTML for the label. + * @type string field The input tag and the CAPTCHA image. + * } + */ + static function rs_captcha( $return = 'string' ) { + + global $wpmem; + + if ( defined( 'REALLYSIMPLECAPTCHA_VERSION' ) ) { + // setup defaults + $defaults = array( + 'characters' => 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789', + 'num_char' => '4', + 'dim_w' => '72', + 'dim_h' => '30', + 'font_color' => '0,0,0', + 'bg_color' => '255,255,255', + 'font_size' => '12', + 'kerning' => '14', + 'img_type' => 'png', + ); + $opts = get_option( 'wpmembers_captcha' ); + + $args = ( isset( $opts['really_simple'] ) && is_array( $opts['really_simple'] ) ) ? $opts['really_simple'] : array(); + $args = wp_parse_args( $args, $defaults ); + + $rs_captcha = new ReallySimpleCaptcha(); + $rs_captcha->chars = $args['characters']; + $rs_captcha->char_length = $args['num_char']; + $rs_captcha->img_size = array( $args['dim_w'], $args['dim_h'] ); + $rs_captcha->fg = explode( ",", $args['font_color'] ); + $rs_captcha->bg = explode( ",", $args['bg_color'] ); + $rs_captcha->font_size = $args['font_size']; + $rs_captcha->font_char_width = $args['kerning']; + $rs_captcha->img_type = $args['img_type']; + + $rs_captcha_word = $rs_captcha->generate_random_word(); + $rs_captcha_prefix = mt_rand(); + $rs_captcha_image_name = $rs_captcha->generate_image( $rs_captcha_prefix, $rs_captcha_word ); + + /** + * Filters the default Really Simple Captcha folder location. + * + * @since 3.0 + * + * @param string The default location of RS Captcha. + */ + $rs_captcha_image_url = apply_filters( 'wpmem_rs_captcha_folder', get_bloginfo( 'wpurl' ) . '/wp-content/plugins/really-simple-captcha/tmp/' ); + + $img_w = $rs_captcha->img_size[0]; + $img_h = $rs_captcha->img_size[1]; + $src = $rs_captcha_image_url . $rs_captcha_image_name; + $size = $rs_captcha->char_length; + $pre = $rs_captcha_prefix; + + /** + * Filter the RS CAPTCHA HTML. + * + * @since 3.3.5 + * + * @param array + */ + $rows = apply_filters( 'wpmem_rs_captcha_rows', array( + 'label_text' => wpmem_get_text( 'register_rscaptcha' ), + 'code_size' => esc_attr( $size ), + 'prefix' => $pre, + 'img_src' => esc_url( $src ), + 'img_w' => esc_attr( $img_w ), + 'img_h' => esc_attr( $img_h ), + 'label' => '', + 'field' => '', + 'hidden' => '', + 'img' => ''; + $label = ''; + $input = wpmem_form_field( $meta_key, $field['type'], $field['checked_value'], $val ); + $row_after = '
'; + + } elseif ( 'hidden' == $field['type'] ) { + + // Handle hidden fields + $row_before = ''; + $label = ''; + $input = wpmem_form_field( array( + 'name' => $meta_key, + 'type' => $field['type'], + 'value' => $field['value'], + 'compare' => $valtochk, + 'required' => $field['required'], + ) ); + $row_after = ''; + + } else { + + $row_before = ( $is_woo ) ? '' : '
';
+ $label = '';
+ $label .= ( 'multicheckbox' == $field['type'] ) ? '
' : '';
+
+ // determine the field type and generate accordingly...
+
+ switch ( $field['type'] ) {
+
+ case( 'textarea' ):
+ $input = '';
+ break;
+
+ case( 'select' ):
+ case( 'multiselect' ):
+ case( 'multicheckbox' ):
+ case( 'radio' ):
+ case( 'membership' ):
+ $row_before = ( $is_woo && ( 'select' == $field['type'] || 'multiselect' == $field['type'] || 'membership' == $field['type'] ) ) ? $row_before : '
'; + $valtochk = ( isset( $_POST[ $meta_key ] ) ) ? sanitize_text_field( $_POST[ $meta_key ] ) : ''; + $formfield_args = array( + 'name' => $meta_key, + 'type' => $field['type'], + 'value' => $field['values'], + 'compare' => $valtochk, + 'required' => $field['required'], + 'class' => ( $is_woo && ( 'select' == $field['type'] || 'multiselect' == $field['type'] || 'membership' == $field['type'] ) ) ? 'woocommerce-Input woocommerce-Input--text input-text' : $field['type'], + ); + if ( 'multicheckbox' == $field['type'] || 'multiselect' == $field['type'] ) { + $formfield_args['delimiter'] = $field['delimiter']; + } + $input = wpmem_form_field( $formfield_args ); + break; + + case( 'file' ): + case( 'image' ): + // Field type not supported for this yet. + break; + + default: + $class = ( $is_woo ) ? 'woocommerce-Input woocommerce-Input--text input-text' : 'input'; + //$input = ''; + break; + } + + $row_after = '
'; + + } + + // if the row is set to display, add the row to the form array + $rows[ $meta_key ] = array( + 'type' => $field['type'], + 'row_before' => $row_before, + 'label' => $label, + 'field' => $input, + 'row_after' => $row_after, + ); + } + } + + // Do recaptcha if enabled. + if ( ! $is_woo && isset( $wpmem->captcha ) && $wpmem->captcha != 0 ) { + + $row_before = ''; + $row_after = '
'; + $label = ''; + $captcha = ''; + + if ( in_array( $wpmem->captcha, array( 1, 3, 4 ) ) ) { + $captcha = WP_Members_Captcha::recaptcha(); + } elseif ( 5 == $wpmem->captcha ) { + $captcha = WP_Members_Captcha::hcaptcha(); + } elseif ( 2 == $wpmem->captcha ) { + $row = WP_Members_Captcha::rs_captcha( 'array' ); + $label = $row['label']; //$row['label_text']; + $captcha = $row['img'] . $row['hidden'] . $row['field']; + } + if ( 4 == $wpmem->captcha ) { + $row_before = ''; + $row_after = ''; + } + + $rows['captcha'] = array( + 'type' => '', + 'row_before' => $row_before, + 'row_after' => $row_after, + 'label' => $label, + 'field' => $captcha, + ); + } + + if ( isset( $rows ) && is_array( $rows ) ) { + + /** + * Filter the native registration form rows. + * + * @since 2.9.3. + * + * @param array $rows The custom rows added to the form. + */ + $rows = apply_filters( 'wpmem_native_form_rows', $rows ); + + foreach ( $rows as $row_item ) { + if ( $row_item['type'] == 'checkbox' ) { + echo $row_item['row_before'] . $row_item['field'] . $row_item['label'] . $row_item['row_after']; + } else { + echo $row_item['row_before'] . $row_item['label'] . $row_item['field'] . $row_item['row_after']; + } + } + } + } + } + + + /** + * Appends WP-Members registration fields to Users > Add New User screen. + * + * @since 2.9.0 + * @since 3.1.1 Updated to support new (3.1.0) field types and user activation. + * @since 3.1.6 Updated to support new fields array. + * @since 3.3.0 Ported from wpmem_do_wp_newuser_form() in wp-registration.php. + * + * @global stdClass $wpmem + */ + function wp_newuser_form() { + + global $wpmem; + echo '| + + | +'; + + // determine the field type and generate accordingly. + + // All fields use the following: + $args['name'] = $meta_key; + $args['type'] = $field['type']; + $args['required'] = $field['required']; + + $args['placeholder'] = ( isset( $field['placeholder'] ) ) ? $field['placeholder'] : ''; + $args['pattern'] = ( isset( $field['pattern'] ) ) ? $field['pattern'] : ''; + $args['title'] = ( isset( $field['title'] ) ) ? $field['title'] : ''; + + switch ( $field['type'] ) { + + case( 'select' ): + $val = ( isset( $_POST[ $meta_key ] ) ) ? sanitize_text_field( $_POST[ $meta_key ] ) : ''; + $args['value'] = $field['values']; + $args['compare'] = $val; + echo wpmem_form_field( $args ); + break; + + case( 'textarea' ): + $args['value'] = ( isset( $_POST[ $meta_key ] ) ) ? esc_textarea( $_POST[ $meta_key ] ) : ''; + echo wpmem_form_field( $args ); + break; + + case( 'checkbox' ): + $val = ( isset( $_POST[ $meta_key ] ) ) ? sanitize_text_field( $_POST[ $meta_key ] ) : ''; + $val = ( ! $_POST && $field['checked_default'] ) ? $field['checked_value'] : $val; + $args['value'] = $field['checked_value']; + $args['compare'] = $val; + echo wpmem_form_field( $args ); + break; + + case( 'multiselect' ): + case( 'multicheckbox' ): + case( 'radio' ): + case( 'membership' ); + $args['value'] = $field['values']; + $args['compare'] = ( isset( $_POST[ $meta_key ] ) ) ? sanitize_text_field( $_POST[ $meta_key ] ) : ''; + if ( 'multicheckbox' == $field['type'] || 'multiselect' == $field['type'] ) { + $args['delimiter'] = $field['delimiter']; + } + echo wpmem_form_field( $args ); + break; + + case( 'file' ): + case( 'image' ): + echo 'Not currently supported for this form'; + break; + + default: + $args['value'] = ( isset( $_POST[ $meta_key ] ) ) ? esc_attr( $_POST[ $meta_key ] ) : ''; + echo wpmem_form_field( $args ); + break; + } + + echo ' | +
|---|---|
| + + | +' . wpmem_form_field( array( 'name' => 'activate_user', 'type' => 'checkbox', 'value' => 1, 'compare' => '' ) ) . ' | +
' . $msg . '
', '
' . sprintf( wpmem_get_text( 'register_status' ), $user_login ) . '
', + 'wrapper_before' => '', + 'wrapper_after' => '
', + 'user_login' => $user_login, + 'welcome' => wpmem_get_text( 'login_welcome' ), + 'logout_text' => wpmem_get_text( 'login_logout' ), + 'logout_link' => '%s', + 'separator' => '). + * @type string $wrapper_after The wrapper closing tag (default:
). + * @type string $user_login + * @type string $welcome + * @type string $logout_text + * @type string $logout_link + * @type string $separator + * } + */ + $args = apply_filters( "wpmem_{$page}_links_args", $args ); + + // Assemble the message string. + $str = $args['wrapper_before'] + . sprintf( $args['welcome'], $args['user_login'] ) + . $args['separator'] + . sprintf( $args['logout_link'], $args['logout_text'] ) + . $args['wrapper_after']; + + /** + * Filter the links displayed on the Log In page (logged in state). + * + * @since 2.8.3 + * + * @param string $str The default links. + */ + $str = apply_filters( "wpmem_{$page}_links", $str ); + break; + + case 'member': + default: + + // NOTE: DO NOT EDIT. Use the filter below. + $arr = array( + 'before_wrapper' => '', + 'wrapper_before' => '| ' . $label . ' | ', + 'field_before' => '', + 'field' => $input, + 'field_after' => ' | ', + 'row_after' => '
|---|
+ + +
++ + +
+ id_base ); + /** + * Filter the widget title. + * + * @since Unknown + * @since 3.2.0 Added instance and id_base params. + * + * @param string $title The widget title. + * @param array $instance Array of settings for the current widget. + * @param mixed $id_base The widget ID. + */ + $title = apply_filters( 'wpmem_widget_title', $title, $instance, $this->id_base ); + + /** + * Filter the widget ID. + * + * @since Unknown + * @since 3.2.0 Added instance and id_base params. + * + * @param string The ID for the sidebar widget. + * @param array $instance Array of settings for the current widget. + * @param mixed $id_base The widget ID. + */ + $id = apply_filters( 'wpmem_widget_id', 'wp-members', $instance, $this->id_base ); + + echo $args['before_widget']; + echo '', + 'error_after' => '
', + 'fieldset_before' => '', + 'row_before' => '', + 'row_after' => '', + 'inputs_before' => '0) { + name.splice(i - 1, 2); + i -= 2; + } + } + } + //end trimDots + + name = name.join('/'); + } + + //Apply map config if available. + if ((baseParts || starMap) && map) { + nameParts = name.split('/'); + + for (i = nameParts.length; i > 0; i -= 1) { + nameSegment = nameParts.slice(0, i).join("/"); + + if (baseParts) { + //Find the longest baseName segment match in the config. + //So, do joins on the biggest to smallest lengths of baseParts. + for (j = baseParts.length; j > 0; j -= 1) { + mapValue = map[baseParts.slice(0, j).join('/')]; + + //baseName segment has config, find if it has one for + //this name. + if (mapValue) { + mapValue = mapValue[nameSegment]; + if (mapValue) { + //Match, update name to the new value. + foundMap = mapValue; + foundI = i; + break; + } + } + } + } + + if (foundMap) { + break; + } + + //Check for a star map match, but just hold on to it, + //if there is a shorter segment match later in a matching + //config, then favor over this star map. + if (!foundStarMap && starMap && starMap[nameSegment]) { + foundStarMap = starMap[nameSegment]; + starI = i; + } + } + + if (!foundMap && foundStarMap) { + foundMap = foundStarMap; + foundI = starI; + } + + if (foundMap) { + nameParts.splice(0, foundI, foundMap); + name = nameParts.join('/'); + } + } + + return name; + } + + function makeRequire(relName, forceSync) { + return function () { + //A version of a require function that passes a moduleName + //value for items that may need to + //look up paths relative to the moduleName + var args = aps.call(arguments, 0); + + //If first arg is not require('string'), and there is only + //one arg, it is the array form without a callback. Insert + //a null so that the following concat is correct. + if (typeof args[0] !== 'string' && args.length === 1) { + args.push(null); + } + return req.apply(undef, args.concat([relName, forceSync])); + }; + } + + function makeNormalize(relName) { + return function (name) { + return normalize(name, relName); + }; + } + + function makeLoad(depName) { + return function (value) { + defined[depName] = value; + }; + } + + function callDep(name) { + if (hasProp(waiting, name)) { + var args = waiting[name]; + delete waiting[name]; + defining[name] = true; + main.apply(undef, args); + } + + if (!hasProp(defined, name) && !hasProp(defining, name)) { + throw new Error('No ' + name); + } + return defined[name]; + } + + //Turns a plugin!resource to [plugin, resource] + //with the plugin being undefined if the name + //did not have a plugin prefix. + function splitPrefix(name) { + var prefix, + index = name ? name.indexOf('!') : -1; + if (index > -1) { + prefix = name.substring(0, index); + name = name.substring(index + 1, name.length); + } + return [prefix, name]; + } + + //Creates a parts array for a relName where first part is plugin ID, + //second part is resource ID. Assumes relName has already been normalized. + function makeRelParts(relName) { + return relName ? splitPrefix(relName) : []; + } + + /** + * Makes a name map, normalizing the name, and using a plugin + * for normalization if necessary. Grabs a ref to plugin + * too, as an optimization. + */ + makeMap = function (name, relParts) { + var plugin, + parts = splitPrefix(name), + prefix = parts[0], + relResourceName = relParts[1]; + + name = parts[1]; + + if (prefix) { + prefix = normalize(prefix, relResourceName); + plugin = callDep(prefix); + } + + //Normalize according + if (prefix) { + if (plugin && plugin.normalize) { + name = plugin.normalize(name, makeNormalize(relResourceName)); + } else { + name = normalize(name, relResourceName); + } + } else { + name = normalize(name, relResourceName); + parts = splitPrefix(name); + prefix = parts[0]; + name = parts[1]; + if (prefix) { + plugin = callDep(prefix); + } + } + + //Using ridiculous property names for space reasons + return { + f: prefix ? prefix + '!' + name : name, //fullName + n: name, + pr: prefix, + p: plugin + }; + }; + + function makeConfig(name) { + return function () { + return (config && config.config && config.config[name]) || {}; + }; + } + + handlers = { + require: function (name) { + return makeRequire(name); + }, + exports: function (name) { + var e = defined[name]; + if (typeof e !== 'undefined') { + return e; + } else { + return (defined[name] = {}); + } + }, + module: function (name) { + return { + id: name, + uri: '', + exports: defined[name], + config: makeConfig(name) + }; + } + }; + + main = function (name, deps, callback, relName) { + var cjsModule, depName, ret, map, i, relParts, + args = [], + callbackType = typeof callback, + usingExports; + + //Use name if no relName + relName = relName || name; + relParts = makeRelParts(relName); + + //Call the callback to define the module, if necessary. + if (callbackType === 'undefined' || callbackType === 'function') { + //Pull out the defined dependencies and pass the ordered + //values to the callback. + //Default to [require, exports, module] if no deps + deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps; + for (i = 0; i < deps.length; i += 1) { + map = makeMap(deps[i], relParts); + depName = map.f; + + //Fast path CommonJS standard dependencies. + if (depName === "require") { + args[i] = handlers.require(name); + } else if (depName === "exports") { + //CommonJS module spec 1.1 + args[i] = handlers.exports(name); + usingExports = true; + } else if (depName === "module") { + //CommonJS module spec 1.1 + cjsModule = args[i] = handlers.module(name); + } else if (hasProp(defined, depName) || + hasProp(waiting, depName) || + hasProp(defining, depName)) { + args[i] = callDep(depName); + } else if (map.p) { + map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); + args[i] = defined[depName]; + } else { + throw new Error(name + ' missing ' + depName); + } + } + + ret = callback ? callback.apply(defined[name], args) : undefined; + + if (name) { + //If setting exports via "module" is in play, + //favor that over return value and exports. After that, + //favor a non-undefined return value over exports use. + if (cjsModule && cjsModule.exports !== undef && + cjsModule.exports !== defined[name]) { + defined[name] = cjsModule.exports; + } else if (ret !== undef || !usingExports) { + //Use the return value from the function. + defined[name] = ret; + } + } + } else if (name) { + //May just be an object definition for the module. Only + //worry about defining if have a module name. + defined[name] = callback; + } + }; + + requirejs = require = req = function (deps, callback, relName, forceSync, alt) { + if (typeof deps === "string") { + if (handlers[deps]) { + //callback in this case is really relName + return handlers[deps](callback); + } + //Just return the module wanted. In this scenario, the + //deps arg is the module name, and second arg (if passed) + //is just the relName. + //Normalize module name, if it contains . or .. + return callDep(makeMap(deps, makeRelParts(callback)).f); + } else if (!deps.splice) { + //deps is a config object, not an array. + config = deps; + if (config.deps) { + req(config.deps, config.callback); + } + if (!callback) { + return; + } + + if (callback.splice) { + //callback is an array, which means it is a dependency list. + //Adjust args if there are dependencies + deps = callback; + callback = relName; + relName = null; + } else { + deps = undef; + } + } + + //Support require(['a']) + callback = callback || function () {}; + + //If relName is a function, it is an errback handler, + //so remove it. + if (typeof relName === 'function') { + relName = forceSync; + forceSync = alt; + } + + //Simulate async callback; + if (forceSync) { + main(undef, deps, callback, relName); + } else { + //Using a non-zero value because of concern for what old browsers + //do, and latest browsers "upgrade" to 4 if lower value is used: + //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout: + //If want a value immediately, use require('id') instead -- something + //that works in almond on the global level, but not guaranteed and + //unlikely to work in other AMD implementations. + setTimeout(function () { + main(undef, deps, callback, relName); + }, 4); + } + + return req; + }; + + /** + * Just drops the config on the floor, but returns req in case + * the config return value is used. + */ + req.config = function (cfg) { + return req(cfg); + }; + + /** + * Expose module registry for debugging and tooling + */ + requirejs._defined = defined; + + define = function (name, deps, callback) { + if (typeof name !== 'string') { + throw new Error('See almond README: incorrect module build, no module name'); + } + + //This module may not have dependencies + if (!deps.splice) { + //deps is not an array, so probably means + //an object literal or factory function for + //the value. Adjust args. + callback = deps; + deps = []; + } + + if (!hasProp(defined, name) && !hasProp(waiting, name)) { + waiting[name] = [name, deps, callback]; + } + }; + + define.amd = { + jQuery: true + }; +}()); + +S2.requirejs = requirejs;S2.require = require;S2.define = define; +} +}()); +S2.define("almond", function(){}); + +/* global jQuery:false, $:false */ +S2.define('jquery',[],function () { + var _$ = jQuery || $; + + if (_$ == null && console && console.error) { + console.error( + 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + + 'found. Make sure that you are including jQuery before Select2 on your ' + + 'web page.' + ); + } + + return _$; +}); + +S2.define('select2/utils',[ + 'jquery' +], function ($) { + var Utils = {}; + + Utils.Extend = function (ChildClass, SuperClass) { + var __hasProp = {}.hasOwnProperty; + + function BaseConstructor () { + this.constructor = ChildClass; + } + + for (var key in SuperClass) { + if (__hasProp.call(SuperClass, key)) { + ChildClass[key] = SuperClass[key]; + } + } + + BaseConstructor.prototype = SuperClass.prototype; + ChildClass.prototype = new BaseConstructor(); + ChildClass.__super__ = SuperClass.prototype; + + return ChildClass; + }; + + function getMethods (theClass) { + var proto = theClass.prototype; + + var methods = []; + + for (var methodName in proto) { + var m = proto[methodName]; + + if (typeof m !== 'function') { + continue; + } + + if (methodName === 'constructor') { + continue; + } + + methods.push(methodName); + } + + return methods; + } + + Utils.Decorate = function (SuperClass, DecoratorClass) { + var decoratedMethods = getMethods(DecoratorClass); + var superMethods = getMethods(SuperClass); + + function DecoratedClass () { + var unshift = Array.prototype.unshift; + + var argCount = DecoratorClass.prototype.constructor.length; + + var calledConstructor = SuperClass.prototype.constructor; + + if (argCount > 0) { + unshift.call(arguments, SuperClass.prototype.constructor); + + calledConstructor = DecoratorClass.prototype.constructor; + } + + calledConstructor.apply(this, arguments); + } + + DecoratorClass.displayName = SuperClass.displayName; + + function ctr () { + this.constructor = DecoratedClass; + } + + DecoratedClass.prototype = new ctr(); + + for (var m = 0; m < superMethods.length; m++) { + var superMethod = superMethods[m]; + + DecoratedClass.prototype[superMethod] = + SuperClass.prototype[superMethod]; + } + + var calledMethod = function (methodName) { + // Stub out the original method if it's not decorating an actual method + var originalMethod = function () {}; + + if (methodName in DecoratedClass.prototype) { + originalMethod = DecoratedClass.prototype[methodName]; + } + + var decoratedMethod = DecoratorClass.prototype[methodName]; + + return function () { + var unshift = Array.prototype.unshift; + + unshift.call(arguments, originalMethod); + + return decoratedMethod.apply(this, arguments); + }; + }; + + for (var d = 0; d < decoratedMethods.length; d++) { + var decoratedMethod = decoratedMethods[d]; + + DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod); + } + + return DecoratedClass; + }; + + var Observable = function () { + this.listeners = {}; + }; + + Observable.prototype.on = function (event, callback) { + this.listeners = this.listeners || {}; + + if (event in this.listeners) { + this.listeners[event].push(callback); + } else { + this.listeners[event] = [callback]; + } + }; + + Observable.prototype.trigger = function (event) { + var slice = Array.prototype.slice; + var params = slice.call(arguments, 1); + + this.listeners = this.listeners || {}; + + // Params should always come in as an array + if (params == null) { + params = []; + } + + // If there are no arguments to the event, use a temporary object + if (params.length === 0) { + params.push({}); + } + + // Set the `_type` of the first object to the event + params[0]._type = event; + + if (event in this.listeners) { + this.invoke(this.listeners[event], slice.call(arguments, 1)); + } + + if ('*' in this.listeners) { + this.invoke(this.listeners['*'], arguments); + } + }; + + Observable.prototype.invoke = function (listeners, params) { + for (var i = 0, len = listeners.length; i < len; i++) { + listeners[i].apply(this, params); + } + }; + + Utils.Observable = Observable; + + Utils.generateChars = function (length) { + var chars = ''; + + for (var i = 0; i < length; i++) { + var randomChar = Math.floor(Math.random() * 36); + chars += randomChar.toString(36); + } + + return chars; + }; + + Utils.bind = function (func, context) { + return function () { + func.apply(context, arguments); + }; + }; + + Utils._convertData = function (data) { + for (var originalKey in data) { + var keys = originalKey.split('-'); + + var dataLevel = data; + + if (keys.length === 1) { + continue; + } + + for (var k = 0; k < keys.length; k++) { + var key = keys[k]; + + // Lowercase the first letter + // By default, dash-separated becomes camelCase + key = key.substring(0, 1).toLowerCase() + key.substring(1); + + if (!(key in dataLevel)) { + dataLevel[key] = {}; + } + + if (k == keys.length - 1) { + dataLevel[key] = data[originalKey]; + } + + dataLevel = dataLevel[key]; + } + + delete data[originalKey]; + } + + return data; + }; + + Utils.hasScroll = function (index, el) { + // Adapted from the function created by @ShadowScripter + // and adapted by @BillBarry on the Stack Exchange Code Review website. + // The original code can be found at + // http://codereview.stackexchange.com/q/13338 + // and was designed to be used with the Sizzle selector engine. + + var $el = $(el); + var overflowX = el.style.overflowX; + var overflowY = el.style.overflowY; + + //Check both x and y declarations + if (overflowX === overflowY && + (overflowY === 'hidden' || overflowY === 'visible')) { + return false; + } + + if (overflowX === 'scroll' || overflowY === 'scroll') { + return true; + } + + return ($el.innerHeight() < el.scrollHeight || + $el.innerWidth() < el.scrollWidth); + }; + + Utils.escapeMarkup = function (markup) { + var replaceMap = { + '\\': '\', + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '/': '/' + }; + + // Do not try to escape the markup if it's not a string + if (typeof markup !== 'string') { + return markup; + } + + return String(markup).replace(/[&<>"'\/\\]/g, function (match) { + return replaceMap[match]; + }); + }; + + // Cache objects in Utils.__cache instead of $.data (see #4346) + Utils.__cache = {}; + + var id = 0; + Utils.GetUniqueElementId = function (element) { + // Get a unique element Id. If element has no id, + // creates a new unique number, stores it in the id + // attribute and returns the new id with a prefix. + // If an id already exists, it simply returns it with a prefix. + + var select2Id = element.getAttribute('data-select2-id'); + + if (select2Id != null) { + return select2Id; + } + + // If element has id, use it. + if (element.id) { + select2Id = 'select2-data-' + element.id; + } else { + select2Id = 'select2-data-' + (++id).toString() + + '-' + Utils.generateChars(4); + } + + element.setAttribute('data-select2-id', select2Id); + + return select2Id; + }; + + Utils.StoreData = function (element, name, value) { + // Stores an item in the cache for a specified element. + // name is the cache key. + var id = Utils.GetUniqueElementId(element); + if (!Utils.__cache[id]) { + Utils.__cache[id] = {}; + } + + Utils.__cache[id][name] = value; + }; + + Utils.GetData = function (element, name) { + // Retrieves a value from the cache by its key (name) + // name is optional. If no name specified, return + // all cache items for the specified element. + // and for a specified element. + var id = Utils.GetUniqueElementId(element); + if (name) { + if (Utils.__cache[id]) { + if (Utils.__cache[id][name] != null) { + return Utils.__cache[id][name]; + } + return $(element).data(name); // Fallback to HTML5 data attribs. + } + return $(element).data(name); // Fallback to HTML5 data attribs. + } else { + return Utils.__cache[id]; + } + }; + + Utils.RemoveData = function (element) { + // Removes all cached items for a specified element. + var id = Utils.GetUniqueElementId(element); + if (Utils.__cache[id] != null) { + delete Utils.__cache[id]; + } + + element.removeAttribute('data-select2-id'); + }; + + Utils.copyNonInternalCssClasses = function (dest, src) { + var classes; + + var destinationClasses = dest.getAttribute('class').trim().split(/\s+/); + + destinationClasses = destinationClasses.filter(function (clazz) { + // Save all Select2 classes + return clazz.indexOf('select2-') === 0; + }); + + var sourceClasses = src.getAttribute('class').trim().split(/\s+/); + + sourceClasses = sourceClasses.filter(function (clazz) { + // Only copy non-Select2 classes + return clazz.indexOf('select2-') !== 0; + }); + + var replacements = destinationClasses.concat(sourceClasses); + + dest.setAttribute('class', replacements.join(' ')); + }; + + return Utils; +}); + +S2.define('select2/results',[ + 'jquery', + './utils' +], function ($, Utils) { + function Results ($element, options, dataAdapter) { + this.$element = $element; + this.data = dataAdapter; + this.options = options; + + Results.__super__.constructor.call(this); + } + + Utils.Extend(Results, Utils.Observable); + + Results.prototype.render = function () { + var $results = $( + '
' + ); + + if (this.options.get('multiple')) { + $results.attr('aria-multiselectable', 'true'); + } + + this.$results = $results; + + return $results; + }; + + Results.prototype.clear = function () { + this.$results.empty(); + }; + + Results.prototype.displayMessage = function (params) { + var escapeMarkup = this.options.get('escapeMarkup'); + + this.clear(); + this.hideLoading(); + + var $message = $( + '' + ); + + var message = this.options.get('translations').get(params.message); + + $message.append( + escapeMarkup( + message(params.args) + ) + ); + + $message[0].className += ' select2-results__message'; + + this.$results.append($message); + }; + + Results.prototype.hideMessages = function () { + this.$results.find('.select2-results__message').remove(); + }; + + Results.prototype.append = function (data) { + this.hideLoading(); + + var $options = []; + + if (data.results == null || data.results.length === 0) { + if (this.$results.children().length === 0) { + this.trigger('results:message', { + message: 'noResults' + }); + } + + return; + } + + data.results = this.sort(data.results); + + for (var d = 0; d < data.results.length; d++) { + var item = data.results[d]; + + var $option = this.option(item); + + $options.push($option); + } + + this.$results.append($options); + }; + + Results.prototype.position = function ($results, $dropdown) { + var $resultsContainer = $dropdown.find('.select2-results'); + $resultsContainer.append($results); + }; + + Results.prototype.sort = function (data) { + var sorter = this.options.get('sorter'); + + return sorter(data); + }; + + Results.prototype.highlightFirstItem = function () { + var $options = this.$results + .find('.select2-results__option--selectable'); + + var $selected = $options.filter('.select2-results__option--selected'); + + // Check if there are any selected options + if ($selected.length > 0) { + // If there are selected options, highlight the first + $selected.first().trigger('mouseenter'); + } else { + // If there are no selected options, highlight the first option + // in the dropdown + $options.first().trigger('mouseenter'); + } + + this.ensureHighlightVisible(); + }; + + Results.prototype.setClasses = function () { + var self = this; + + this.data.current(function (selected) { + var selectedIds = selected.map(function (s) { + return s.id.toString(); + }); + + var $options = self.$results + .find('.select2-results__option--selectable'); + + $options.each(function () { + var $option = $(this); + + var item = Utils.GetData(this, 'data'); + + // id needs to be converted to a string when comparing + var id = '' + item.id; + + if ((item.element != null && item.element.selected) || + (item.element == null && selectedIds.indexOf(id) > -1)) { + this.classList.add('select2-results__option--selected'); + $option.attr('aria-selected', 'true'); + } else { + this.classList.remove('select2-results__option--selected'); + $option.attr('aria-selected', 'false'); + } + }); + + }); + }; + + Results.prototype.showLoading = function (params) { + this.hideLoading(); + + var loadingMore = this.options.get('translations').get('searching'); + + var loading = { + disabled: true, + loading: true, + text: loadingMore(params) + }; + var $loading = this.option(loading); + $loading.className += ' loading-results'; + + this.$results.prepend($loading); + }; + + Results.prototype.hideLoading = function () { + this.$results.find('.loading-results').remove(); + }; + + Results.prototype.option = function (data) { + var option = document.createElement('li'); + option.classList.add('select2-results__option'); + option.classList.add('select2-results__option--selectable'); + + var attrs = { + 'role': 'option' + }; + + var matches = window.Element.prototype.matches || + window.Element.prototype.msMatchesSelector || + window.Element.prototype.webkitMatchesSelector; + + if ((data.element != null && matches.call(data.element, ':disabled')) || + (data.element == null && data.disabled)) { + attrs['aria-disabled'] = 'true'; + + option.classList.remove('select2-results__option--selectable'); + option.classList.add('select2-results__option--disabled'); + } + + if (data.id == null) { + option.classList.remove('select2-results__option--selectable'); + } + + if (data._resultId != null) { + option.id = data._resultId; + } + + if (data.title) { + option.title = data.title; + } + + if (data.children) { + attrs.role = 'group'; + attrs['aria-label'] = data.text; + + option.classList.remove('select2-results__option--selectable'); + option.classList.add('select2-results__option--group'); + } + + for (var attr in attrs) { + var val = attrs[attr]; + + option.setAttribute(attr, val); + } + + if (data.children) { + var $option = $(option); + + var label = document.createElement('strong'); + label.className = 'select2-results__group'; + + this.template(data, label); + + var $children = []; + + for (var c = 0; c < data.children.length; c++) { + var child = data.children[c]; + + var $child = this.option(child); + + $children.push($child); + } + + var $childrenContainer = $('