array( $this->settings, 'settings_page' ) ); } /** * Display notice with review beg * @return void */ public function beg_for_review() { if ( lrm_is_pro() ) { // Update notice for 1.18 > 1.20 if ( lrm_is_pro( 1.17 ) && LRM_Pro_User_Verification::link_verification_is_on() && false === strpos( LRM_Settings::get()->setting('mails/registration/body'), '{{VERIFY_ACCOUNT_URL}}' ) ) { echo '

'; printf( '"AJAX Login and Register Modal" warning: please add tag {{VERIFY_ACCOUNT_URL}} to "Registration" mail body in Emails Section, else user can\'t verify account and login to your site.', admin_url('options-general.php?page=login-and-register-popup§ion=mails') ); echo '

'; } } // Update notice for 1.18 > 1.20 if ( false === strpos( LRM_Settings::get()->setting('mails/lost_password/body'), '{{CHANGE_PASSWORD_URL}}' ) ) { echo '

'; printf( '"AJAX Login and Register Modal" warning: please update "Lost password" mail body in Emails Section (replace {{PASSWORD}} with {{CHANGE_PASSWORD_URL}})', admin_url('options-general.php?page=login-and-register-popup§ion=mails') ); echo '

'; } $screen = get_current_screen(); if ( $screen->id != 'settings_page_' . $this->page_id ) { return; } // Update notice for 1.18 > 1.20 if ( ! get_option("users_can_register") ) { echo '

'; printf( '"AJAX Login and Register Modal" warning: registration is disabled in your Wordpress settings. Please go to Settings => General and enable option "Anyone can register".', admin_url('options-general.php') ); echo '

'; } if ( ! get_option( 'lrm_beg_message' ) ) { echo '

'; printf( __( 'Do you like "Login and Register Modal" plugin? Please consider giving it a %1$sreview%2$s', 'ajax-login-and-registration-modal-popup' ), '⭐⭐⭐⭐⭐ ', '' ); echo ''; _e( 'I already reviewed it', 'ajax-login-and-registration-modal-popup' ); echo ''; echo '

'; } } /** * Dismiss beg message * @return object json encoded response */ public function dismiss_beg_message() { check_admin_referer( 'lrm-beg-dismiss' ); update_option( 'lrm_beg_message', 'dismissed' ); } public function register_settings() { $general = $this->settings->add_section( __( 'General', 'ajax-login-and-registration-modal-popup' ), 'general' ); $general->add_group( __( 'Installation steps', 'ajax-login-and-registration-modal-popup' ), 'installation_steps' ) ->add_field( array( 'slug' => 'installation_steps', 'name' => __('How to integrate modal on your site:', 'ajax-login-and-registration-modal-popup' ), 'default' => true, 'render' => array( $this, '_render__text_section' ), 'sanitize' => '__return_false', 'addons' => array('section_file'=>'how-to-integrate-modal'), ) ) ->add_field( array( 'slug' => 'installation_inline', 'name' => __('How to integrate inline form on your site:', 'ajax-login-and-registration-modal-popup' ), 'default' => true, 'render' => array( $this, '_render__text_section' ), 'sanitize' => '__return_false', 'addons' => array('section_file'=>'how-to-integrate-inline'), ) ) ->add_field( array( 'slug' => 'installation_support', 'name' => __('If you need support:', 'ajax-login-and-registration-modal-popup' ), 'default' => true, 'render' => array( $this, '_render__text_section' ), 'sanitize' => '__return_false', 'addons' => array('section_file'=>'support'), ) ); $general->add_group( __( 'Supported plugins', 'ajax-login-and-registration-modal-popup' ), 'supported_plugins' ) ->add_field( array( 'slug' => 'free_version', 'name' => __('Free version are compatible with:', 'ajax-login-and-registration-modal-popup' ), 'default' => true, 'render' => array( $this, '_render__text_section' ), 'sanitize' => '__return_false', 'addons' => array('section_file'=>'free-version-compatible'), ) ); $general->add_group( __( 'Terms', 'ajax-login-and-registration-modal-popup' ), 'terms' ) ->add_field( array( 'slug' => 'off', 'name' => __('Hide Terms box in Registration Form?', 'ajax-login-and-registration-modal-popup' ), 'default' => false, 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ); $user_must_confirm_email_description = __('If this option is enabled - the user won\'t automatically be logged into his account.', 'ajax-login-and-registration-modal-popup' ) . '
'; if ( ! lrm_is_pro() ) { $user_must_confirm_email_description .= __('He will need to open the email with his login information and enter them on the Log In tab.', 'ajax-login-and-registration-modal-popup' ); } else { // if ( LRM_Settings::get()->setting('general_pro/all/allow_user_set_password') ) { // $user_must_confirm_email_description .= '' . __('[ACTIVE]') . ''; // } // $user_must_confirm_email_description .= '' . __('[If user can\'t set password] ') . '' . __('He will need to open the email with his login information and enter them on the Log In tab.', 'ajax-login-and-registration-modal-popup' ); $user_must_confirm_email_description .= '
'; // // if ( ! LRM_Settings::get()->setting('general_pro/all/allow_user_set_password') ) { // $user_must_confirm_email_description .= '' . __('[ACTIVE]') . ''; // } $user_must_confirm_email_description .= '' . __('[If user can set password] ') . '' . __('He will need to open the email and click verification link. Please add {{VERIFY_ACCOUNT_URL}} tag to Registration Email.', 'ajax-login-and-registration-modal-popup' ); } $general->add_group( __( 'General', 'ajax-login-and-registration-modal-popup' ), 'registration' ) // ->add_field( array( // 'slug' => 'user_must_confirm_email', // 'name' => __('User must confirm email after registration?', 'ajax-login-and-registration-modal-popup' ), // 'description' => $user_must_confirm_email_description, // 'default' => false, // 'render' => array( new CoreFields\Checkbox(), 'input' ), // 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), // ) ) // ->add_field( array( // 'slug' => 'reload_after_login', // 'name' => __('Reload page after login/registration?', 'ajax-login-and-registration-modal-popup' ), // 'default' => 'true', // 'description' => 'During registration that option only work if «' . __('User must confirm email after registration?', 'ajax-login-and-registration-modal-popup' ) . '» option is disabled.', // 'render' => array( new CoreFields\Checkbox(), 'input' ), // 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), // ) ) ->add_field( array( 'slug' => 'display_first_and_last_name', 'name' => __('Display First and Last name fields in Registration Form?', 'ajax-login-and-registration-modal-popup' ), 'default' => 'true', 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ); /** * ============================================================================================ * ============================================================================================ */ LRM_Pages_Manager::register_settings($this->settings); LRM_Redirects_Manager::register_settings($this->settings); /** * ============================================================================================ * ============================================================================================ */ $SKINS_SECTION = $this->settings->add_section( __( 'Skins', 'ajax-login-and-registration-modal-popup' ), 'skins' ); $skins_arr = LRM_Skins::i()->get_list(); $SKINS_SECTION->add_group( __( 'Skins (modal design)', 'ajax-login-and-registration-modal-popup' ), 'skin' ) ->add_field( array( 'slug' => 'current', 'name' => __('Select skin', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => $skins_arr, ), 'default' => 'default', 'description' => sprintf( __('In a PRO version you will have more skins', 'ajax-login-and-registration-modal-popup' ), 'https://maxim-kaminsky.com/shop/product/ajax-login-and-registration-modal-popup-pro/' ), 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'icons', 'name' => __('Select icons type', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => [ 'svg' => 'Default SVG Icons', 'icomoon' => 'Icomoon font icons', 'material' => 'Material font icons', 'fa4' => 'Font awesome 4 font icons', 'fa5-free' => 'Font awesome 5 font icons', ], ), 'default' => 'svg', 'description' => '"Font awesome 5" is loading a full icons pack (bigger size), all other very minimal icons packs', 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'hide_tabs', 'name' => __('Hide the tabs (Login/Register)', 'ajax-login-and-registration-modal-popup' ), 'description' => 'It\'s useful to add the text like ' . esc_html('Don\'t have an account already? Register.') . ' and ' . esc_html('Have an account already? Login.') . ' before/after the login/register forms on the EXPRESSIONS > PRO tab' , 'default' => false, 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'btn_style', 'name' => __('Submit button style', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => [ 'default' => 'Default', 'full-width' => 'Full width', ], ), 'default' => 'default', 'description' => 'Full width style example', 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ) ->description( sprintf( 'Skins colors you can customize in WP Customizer with installed PRO version.', admin_url('customize.php?autofocus[panel]=lrm_panel') ) ); /** * ============================================================================================ * ============================================================================================ */ $ADVANCED_SECTION = $this->settings->add_section( __( 'Advanced', 'ajax-login-and-registration-modal-popup' ), 'advanced' ); $ADVANCED_SECTION->add_group( __( 'Extra selectors (id, classes) to handle modal', 'ajax-login-and-registration-modal-popup' ), 'selectors_mapping' ) ->add_field( array( 'slug' => 'login', 'name' => __('Extra selectors to handle log in modal?', 'ajax-login-and-registration-modal-popup' ), 'description' => 'Comma separated values for jQuery, example: .popup_login, #popup_login or .popup_login_show.', 'default' => "a[href*='wp-login']", 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'register', 'name' => __('Extra selectors to handle register modal?', 'ajax-login-and-registration-modal-popup' ), 'description' => 'Comma separated values for jQuery, example: .popup_register, #popup_register or .popup_register_show', 'default' => '', 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->description( __('Use your custom selector to find button/link for attach modal.', 'ajax-login-and-registration-modal-popup' ) ); $ADVANCED_SECTION->add_group( __( 'Data validation', 'ajax-login-and-registration-modal-popup' ), 'validation' ) ->add_field( array( 'slug' => 'type', 'name' => __('Data validation method', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => array( 'both' => 'Both (browser and server)', 'server' => 'Server only - more requests, no browser default messages', ), ), 'default' => 'both', 'description' => __('With using "server" method you can avoid displaying default browser "field invalid" messages and gives more customization options.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ); $ADVANCED_SECTION->add_group( __( 'Debug', 'ajax-login-and-registration-modal-popup' ), 'debug' ) ->add_field( array( 'slug' => 'ajax', 'name' => __('Enable debug mode for public AJAX requests. Required to simply find an error messages.', 'ajax-login-and-registration-modal-popup' ), 'description' => __('Please disable it once problem was solved to improve security!', 'ajax-login-and-registration-modal-popup' ), 'default' => false, 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ); $ADVANCED_SECTION->add_group( __( 'Troubleshooting', 'ajax-login-and-registration-modal-popup' ), 'troubleshooting' ) ->add_field( array( 'slug' => 'call_wp_login_action', 'name' => __('Enable the "wp_login" action', 'ajax-login-and-registration-modal-popup' ), 'description' => __('It\'s disabled to avoid conflicts (unwanted redirects, etc) with some plugins. But this causes that some things like "last login time" doesn\'t work.', 'ajax-login-and-registration-modal-popup' ), 'default' => false, 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ); $ADVANCED_SECTION->add_group( __( 'Uninstall', 'ajax-login-and-registration-modal-popup' ), 'uninstall' ) ->add_field( array( 'slug' => 'remove_all_data', 'name' => __('Remove all plugin settings on plugin deactivation?', 'ajax-login-and-registration-modal-popup' ), 'default' => false, 'addons' => array('label' => __( 'Yes for Free and Pro' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ); // $ADVANCED_SECTION->add_group( __( 'Troubleshooting', 'ajax-login-and-registration-modal-popup' ), 'troubleshooting' ) // ->add_field( array( // 'slug' => 'hook', // 'name' => __('When to call login/registration actions.', 'ajax-login-and-registration-modal-popup'), // 'addons' => array( // 'options' => array( // 'wp_loaded' => '"wp_loaded" - hook by Default [late]', // 'init' => '"init" hook', // 'plugins_loaded' => '"plugins_loaded" hook', // ), // ), // 'default' => 'wp_loaded', // 'description' => __('By default calls made very late to allow other plugins apply hooks/filters, like reCaptcha, WooCommerce, etc. // But for fix issues (like redirect that broken login process) with some plugins like s2member, etc you could play with this option.', 'ajax-login-and-registration-modal-popup' ), // 'render' => array( new CoreFields\Select(), 'input' ), // 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), // ) ); $EMAILS_SECTION = $this->settings->add_section( __( 'Emails', 'ajax-login-and-registration-modal-popup' ), 'mails' ); $EMAILS_SECTION->add_group( __( 'Mails', 'ajax-login-and-registration-modal-popup' ), 'mail', false, true ) ->add_field( array( 'slug' => 'format', 'name' => __('Email format', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => array( 'plain' => 'plain', 'text/html' => 'text/html', 'wc-text/html' => 'text/html using WooCommerce template (require WooCommerce plugin)', ), ), 'default' => 'plain', 'description' => sprintf( __('To enable support of html tags - use text/html email format. More - %1$s
Option "use WooCommerce template" is experimental feature and could have issues with some WC plugins.', 'ajax-login-and-registration-modal-popup' ), 'http://blog.cakemail.com/html-vs-plain-text/' ), 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ); $EMAILS_SECTION->add_group( __( 'Registration', 'ajax-login-and-registration-modal-popup' ), 'registration', true ) ->add_field( array( 'slug' => 'subject', 'name' => __('Subject', 'ajax-login-and-registration-modal-popup'), 'default' => __( '{{SITE_NAME}} Your username and password info', 'ajax-login-and-registration-modal-popup' ), 'description' => __( 'The email Subject to user about successful registration.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'body', 'name' => __('Body', 'ajax-login-and-registration-modal-popup' ), 'default' => __('You just registered on', 'ajax-login-and-registration-modal-popup') . ' {{SITE_NAME}}.' . "\r\n\r\n" . __('Url to login:', 'ajax-login-and-registration-modal-popup') . ' {{LOGIN_URL}}' . "\r\n\r\n" . __('Username:', 'ajax-login-and-registration-modal-popup') . ' {{USERNAME}}' . "\r\n\r\n" . __('Your password is:', 'ajax-login-and-registration-modal-popup') . ' {{PASSWORD}}', 'addons' => array( 'pretty' => true, ), 'description' => 'The email Body to user about successful registration. Allowed tags: {{SITE_NAME}}, {{SITE_URL}}, {{HOME_URL}}, {{EMAIL}}, {{FIRST_NAME}}, {{LAST_NAME}}, {{USERNAME}}, {{PASSWORD}}, {{LOGIN_URL}}, {{VERIFY_ACCOUNT_URL}} (only for PRO)', 'render' => array( new LRM_Field_Editor(), 'input' ), 'sanitize' => array( new LRM_Field_Editor(), 'sanitize' ), ) ); $EMAILS_SECTION->add_group( __( 'Lost password', 'ajax-login-and-registration-modal-popup' ), 'lost_password', true ) ->add_field( array( 'name' => __('Subject', 'ajax-login-and-registration-modal-popup' ), 'default' => __( '{{SITE_NAME}} Your new password', 'ajax-login-and-registration-modal-popup' ), 'slug' => 'subject', 'description' => __( 'The email Subject to user with new password.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'name' => __('Body', 'ajax-login-and-registration-modal-popup' ), 'default' => 'Someone has requested a password reset for the following username: {{USERNAME}}' . "\r\n\r\n" . __( 'If this was a mistake, just ignore this email and nothing will happen.', 'ajax-login-and-registration-modal-popup' ) . "\r\n\r\n" . __('To reset your password, visit the following address:', 'ajax-login-and-registration-modal-popup') . ' {{CHANGE_PASSWORD_URL}}' . "\r\n\r\n", 'slug' => 'body', 'addons' => array( 'pretty' => true, ), 'description' => __( 'The email Body to user with new password. Allowed tags: {{USERNAME}}, {{CHANGE_PASSWORD_URL}}, {{SITE_URL}}, {{HOME_URL}}, {{LOGIN_URL}}, {{EMAIL}}, {{FIRST_NAME}}, {{LAST_NAME}}', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Editor(), 'input' ), 'sanitize' => array( new LRM_Field_Editor(), 'sanitize' ), ) ); $EMAILS_SECTION->add_group( __( 'Admin emails', 'ajax-login-and-registration-modal-popup' ), 'admin_new_user', false, true ) ->add_field( array( 'slug' => 'on', 'name' => __('Send email to admin about new user?', 'ajax-login-and-registration-modal-popup' ), 'default' => false, 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'to', 'name' => __('Send to email', 'ajax-login-and-registration-modal-popup'), 'default' => '', 'description' => __( 'Leave empty to use the WP emai: ', 'ajax-login-and-registration-modal-popup' ). ''. get_option('admin_email') . '', 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'subject', 'name' => __('Subject', 'ajax-login-and-registration-modal-popup'), 'default' => '{{SITE_NAME}} ' . __( 'New user registration on your site:', 'ajax-login-and-registration-modal-popup' ), 'description' => __( 'The email Subject to user about successful registration.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'body', 'name' => __('Body', 'ajax-login-and-registration-modal-popup' ), 'default' => __('New user just registered on', 'ajax-login-and-registration-modal-popup' ) .' {{SITE_NAME}}.' . "\r\n\r\n" . __('Username:', 'ajax-login-and-registration-modal-popup' ) . ' {{USERNAME}}' . "\r\n\r\n" . __('Email:', 'ajax-login-and-registration-modal-popup' ) . ' {{EMAIL}}' . "\r\n\r\n" . __('View:', 'ajax-login-and-registration-modal-popup' ) . ' {{USER_ADMIN_URL}}', 'addons' => array( 'pretty' => true, ), 'description' => 'The email Body to admin about new user. Allowed tags: {{USERNAME}}, {{EMAIL}}, {{USER_ADMIN_URL}}.
Please note - in case of using Social login this email will be not triggered, so please check Social Login plugin settings for that.', 'render' => array( new LRM_Field_Editor(), 'input' ), 'sanitize' => array( new LRM_Field_Editor(), 'sanitize' ), ) ); $EMAILS_SECTION->add_group( __( 'Template for HTML emails (text/html format only, not WooCommerce!)', 'ajax-login-and-registration-modal-popup' ), 'template', true ) ->add_field( array( 'slug' => 'code', 'name' => __('HTML email template', 'ajax-login-and-registration-modal-popup' ), 'default' => '{{CONTENT}}', 'description' => __('Put here your custom mail html template + css + tag {{CONTENT}} (required).', 'ajax-login-and-registration-modal-popup') . sprintf('Tutorial >>', 'https://docs.maxim-kaminsky.com/lrm/kb/how-to-style-email-templates/'), 'render' => array( new LRM_Field_Textarea_With_Html_Extended(), 'input' ), 'sanitize' => array( new LRM_Field_Textarea_With_Html_Extended(), 'sanitize' ), 'addons' => array( 'rows' => 4, ), ) ); $MESSAGES_SECTION = $this->settings->add_section( __( 'Expressions', 'ajax-login-and-registration-modal-popup' ), 'messages' ); $MESSAGES_SECTION->add_group( __( 'Login', 'ajax-login-and-registration-modal-popup' ), 'login', true ) ->add_field( array( 'slug' => 'heading', 'name' => __('Form heading', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Sign in', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'username', 'name' => __('Form: Email or Username', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Email or Username', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password', 'name' => __('Form: Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Password', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'remember-me', 'name' => __('Form: Remember me', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Remember me', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'button', 'name' => __('Form button: Login', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Log in', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'forgot-password', 'name' => __('Link: Forgot your password?', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Forgot your password?', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) // == MESSAGES == ->add_field( array( 'slug' => 'no_login', 'name' => __('Message: No Username/Email', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please enter your Username/email!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'invalid_login', 'name' => __('Message: Invalid login (NOT IN USE ANYMORE!)', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Unknown username. Check again or try your email address.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'invalid_username', 'name' => __('Message: Invalid username', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Unknown username. Check again or try your email address.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'invalid_email', 'name' => __('Message: Invalid email address', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Unknown email address. Check again or try your username', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) // ->add_field( array( // 'slug' => 'invalid_password', // 'name' => __('Message: Invalid password', 'ajax-login-and-registration-modal-popup' ), // 'default' => 'The password you entered for the username %s is incorrect.' . // ' ' . // __( 'Lost your password?' ) . // '', // 'render' => array( new LRM_Field_Textarea_With_Html(), 'input' ), // 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), // ) ) ->add_field( array( 'slug' => 'no_pass', 'name' => __('Message: No Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please enter your password!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'success', 'name' => __('Message: Login successful (with "Reload page after login/registration?" enabled)', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Login successful, reloading page...', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'success_no_reload', 'name' => __('Message: Login successful (with "Reload page after login/registration?" disabled)', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Login successful, you can close this window.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->description( 'Please help translate plugin to your language!' ); $MESSAGES_SECTION->add_group( __( 'Registration', 'ajax-login-and-registration-modal-popup' ), 'registration', true ) ->add_field( array( 'slug' => 'heading', 'name' => __('Form heading', 'ajax-login-and-registration-modal-popup' ), 'default' => __('New account', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'username', 'name' => __('Form: Username', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Username*', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'first-name', 'name' => __('Form: First name', 'ajax-login-and-registration-modal-popup' ), 'default' => __('First name*', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'last-name', 'name' => __('Form: Last name', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Last name', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'email', 'name' => __('Form: Email', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Email*', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'user_role', 'name' => __('Form: User Role', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Select a Role', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'no_user_role', 'name' => __('Form: User Role is missing', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please select a Role', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) // ->add_field( array( // 'slug' => 'password_repeat', // 'name' => __('Form: Repeat Password', 'ajax-login-and-registration-modal-popup' ), // 'default' => __('Repeat Password', 'ajax-login-and-registration-modal-popup' ), // 'render' => array( new LRM_Field_Text(), 'input' ), // 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), // ) ) ->add_field( array( 'slug' => 'terms', 'name' => __('Form: Terms', 'ajax-login-and-registration-modal-popup' ), 'default' => 'I agree with the Terms. Edit this in Settings => Ajax Login Modal => Expressions tab => Registration section', 'description' => 'sanitized by wp_kses_post', 'render' => array( new LRM_Field_Textarea_With_Html(), 'input' ), 'sanitize' => array( new LRM_Field_Textarea_With_Html(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'must_agree_with_terms', 'name' => __('Message: Must agree with the terms', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please agree with the terms to continue!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'button', 'name' => __('Form button: Create account', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Create account', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) // == MESSAGES == ->add_field( array( 'slug' => 'disabled', 'name' => __('Message: Registration is disabled', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Registration is disabled!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'no_username', 'name' => __('Message: No UserName', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please enter your UserName!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'no_name', 'name' => __('Message: No First Name', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please enter your First Name!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'wrong_email', 'name' => __('Message: Wrong email', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Please enter a correct email!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'success', 'name' => __('Message: Registration successful', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Registration was successful, reloading page.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'success_please_login', 'name' => __('Message: Registration successful', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Registration was successful. We have sent you an email with your login information. Please use them to log into your account.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Textarea_With_Html(), 'input' ), 'sanitize' => array( new LRM_Field_Textarea_With_Html(), 'sanitize' ), ) ); $MESSAGES_SECTION->add_group( __( 'Lost password', 'ajax-login-and-registration-modal-popup' ), 'lost_password', true ) ->add_field( array( 'slug' => 'message', 'name' => __('Message', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Lost your password? Please enter your email address. You will receive mail with link to set new password.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'email', 'name' => __('Form: Email or Username', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Email or Username', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'button', 'name' => __('Form button: Reset password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Reset password', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'to_login', 'name' => __('Form button: Back to login', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Back to login', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) // Errors! ->add_field( array( 'slug' => 'invalid_email', 'name' => __('Message: Missing login', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Enter an username or email address.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'email_not_exists', 'name' => __('Message: No user registered with that email address', 'ajax-login-and-registration-modal-popup' ), 'default' => __('There is no user registered with that email address.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'user_not_exists', 'name' => __('Message: No user registered with that username', 'ajax-login-and-registration-modal-popup' ), 'default' => __('There is no user registered with that username.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'invalid_email_or_username', 'name' => __('Message: Invalid username or e-mail address', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Invalid username or e-mail address.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'unable_send', 'name' => __('Message: Unable to send email', 'ajax-login-and-registration-modal-popup' ), 'default' => __('System is unable to send you the mail containing your new password.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'something_wrong', 'name' => __('Message: Something went wrong', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Oops! Something went wrong while updating your account.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'success', 'name' => __('Message: Reset successful', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Check your mailbox to access your new password.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ); $MESSAGES_SECTION->add_group( __( 'Reset Password', 'ajax-login-and-registration-modal-popup' ), 'password_reset', true ) ->add_field( array( 'slug' => 'empty_key', 'name' => __('Password reset link key is missing', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Your password reset link key is missing.', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'empty_login', 'name' => __('Password reset link login is missing', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Your password reset link login is missing.', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ); $MESSAGES_SECTION->add_group( __( 'Password (registration/reset password)', 'ajax-login-and-registration-modal-popup' ), 'password', true ) ->add_field( array( 'slug' => 'password', 'name' => __('Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_confirmation', 'name' => __('Password confirmation', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Password confirmation', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'use_weak_password', 'name' => __('Confirm use of weak password (reset password page)', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Confirm use of weak password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_weak', 'name' => __('Your password is very weak', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Error: Your password is very weak!', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_missing', 'name' => __('Message: Password is missing', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Password is missing!', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_good', 'name' => __('Message: Good Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Good Password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_bad', 'name' => __('Message: Bad Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Bad Password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'passwords_is_mismatch', 'name' => __('Message: Mismatch', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Passwords is mismatch!', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_strong', 'name' => __('Message: Strong Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Strong Password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'password_is_short', 'name' => __('Message: Too Short Password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Too Short Password', 'ajax-login-and-registration-modal-popup'), 'render' => array( new CoreFields\Text(), 'input' ), 'sanitize' => array( new CoreFields\Text(), 'sanitize' ), ) ); $MESSAGES_SECTION->add_group( __( 'Other', 'ajax-login-and-registration-modal-popup' ), 'other', true ) ->add_field( array( 'slug' => 'close_modal', 'name' => __('Close modal text', 'ajax-login-and-registration-modal-popup' ), 'default' => __('close', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'show_pass', 'name' => __('Show password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Show', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'hide_pass', 'name' => __('Hide password', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Hide', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'invalid_nonce', 'name' => __('Message: Security token is expired', 'ajax-login-and-registration-modal-popup' ), 'default' => __('Security token is expired! Please refresh the page!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Text(), 'input' ), 'sanitize' => array( new LRM_Field_Text(), 'sanitize' ), ) ); $pro_label = lrm_is_pro() ? ' > PRO' : ' [PRO Only]' ; $pro_note = lrm_is_pro() ? '' : 'This settings will work only in a PRO version!' ; $SECURITY_SECTION = $this->settings->add_section( __( 'Security (captcha)' . $pro_label, 'ajax-login-and-registration-modal-popup' ), 'security' ); $SECURITY_SECTION->add_group( __( 'General', 'ajax-login-and-registration-modal-popup' ), 'general' ) ->add_field( array( 'slug' => 'use_honeypot', 'name' => __('Secure the form with the Honeypot?', 'ajax-login-and-registration-modal-popup' ), 'default' => 'true', 'addons' => array('label' => __( 'Yes' )), 'description' => sprintf( __('Use the Honeypot to secure the forms?', 'ajax-login-and-registration-modal-popup' ), 'https://www.smartfile.com/blog/captchas-dont-work-how-to-trick-spam-bots-with-a-smarter-honey-pot/' ), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'type', 'name' => __('How to secure forms?', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => array( '' => '= Please select =', 'reCaptcha' => 'reCaptcha (api keys are required) [PRO]', 'MatchCaptcha' => 'MatchCaptcha (less secure but faster) [PRO]', ), ), 'default' => '', 'description' => __('Ony if you do not have external Captcha plugins.', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new LRM_Field_Select_W_PRO(), 'input' ), 'sanitize' => array( new LRM_Field_Select_W_PRO(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'secure_login', 'name' => __('Secure login form?', 'ajax-login-and-registration-modal-popup' ), 'default' => 'true', 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'secure_register', 'name' => __('Secure register form?', 'ajax-login-and-registration-modal-popup' ), 'default' => 'true', 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'secure_lostpass', 'name' => __('Secure lost password form?', 'ajax-login-and-registration-modal-popup' ), 'default' => 'true', 'addons' => array('label' => __( 'Yes' )), 'render' => array( new CoreFields\Checkbox(), 'input' ), 'sanitize' => array( new CoreFields\Checkbox(), 'sanitize' ), ) ) ->description( 'You have to restrict access to the wp-login.php area, else it will be not secure.' . $pro_note ); $SECURITY_SECTION->add_group( __( 'reCaptcha Api Keys', 'ajax-login-and-registration-modal-popup' ), 'recaptcha' ) ->add_field( array( 'slug' => 'type', 'name' => __('reCaptcha type:', 'ajax-login-and-registration-modal-popup'), 'addons' => array( 'options' => array( 'inline' => 'Inline', 'invisible' => 'Invisible', ), ), 'default' => '', 'description' => __('Please make sure that keys is created for the selected reCaptcha type!', 'ajax-login-and-registration-modal-popup' ), 'render' => array( new CoreFields\Select(), 'input' ), 'sanitize' => array( new CoreFields\Select(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'site_key', 'name' => __('Site key', 'ajax-login-and-registration-modal-popup' ), 'default' => '', 'render' => array( new LRM_Field_Password(), 'input' ), 'sanitize' => array( new LRM_Field_Password(), 'sanitize' ), ) ) ->add_field( array( 'slug' => 'secret_key', 'name' => __('Secret key', 'ajax-login-and-registration-modal-popup' ), 'default' => '', 'render' => array( new LRM_Field_Password(), 'input' ), 'sanitize' => array( new LRM_Field_Password(), 'sanitize' ), ) ) ->description( __('Find them here: https://www.google.com/recaptcha/admin', 'ajax-login-and-registration-modal-popup' ) ); $SECURITY_SECTION->add_group( __( 'Match Captcha', 'ajax-login-and-registration-modal-popup' ), 'match_captcha' ) ->description('Label/error messages can be changed on the Expressions > PRO tab'); if ( !lrm_is_pro() ) { $MESSAGES_SECTION = $this->settings->add_section( 'GET PRO >>', 'get_a_pro', false ); $MESSAGES_SECTION->add_group( 'Why get PRO version?', 'main' ) ->add_field( array( 'slug' => 'heading', 'name' => __('PRO features', 'ajax-login-and-registration-modal-popup' ), 'render' => array( $this, '_render__text_section' ), 'sanitize' => '__return_false', 'addons' => array('section_file'=>'go-to-pro'), ) ); } do_action('lrm/register_settings', $this->settings); //$this->register_wpml_strings(); LRM_WPML_Integration::register_strings(); LRM_Roles_Manager::register_settings( $this->settings ); LRM_Import_Export_Manager::register_settings( $this->settings ); } /** * @param underDEV\Utils\Settings\Field $field * * @since 1.11 */ public function _render__text_section( $field ) { if ( $section_file = $field->addon('section_file') ) { include LRM_PATH . "/views/admin/settings-section/{$section_file}.php"; } } public function settings_enqueue_scripts() { wp_enqueue_script( 'lrm-admin', LRM_URL . 'assets/lrm-admin.js', array( 'jquery', 'jquery-ui-sortable' ), LRM_VERSION, true ); wp_localize_script('lrm-admin', 'LRM_ADMIN', array( 'ajax_url' => admin_url('admin-ajax.php'), )); wp_enqueue_style('lrm-admin-css', LRM_URL . '/assets/lrm-core-settings.css', false, LRM_ASSETS_VER); } /** * Get all settings * @uses underDEV\SettingsAPI Settings API class * @return array settings */ public function settings() { return $this->settings->get_settings(); } /** * Get single setting value * @uses SettingsAPI Settings API class * @param string $setting_slug setting section/group/field separated with / * @param bool do_stripslashes * @return mixed field value or null if name not found */ public function setting($setting_slug, $do_stripslashes = false) { $setting_path = explode('/', $setting_slug); // $value = $this->_get_maybe_wpml_translated_string($setting_slug, $setting_path[0]); // // if ( null !== $value ) { // return stripslashes($value); // } $value = $this->settings->get_setting( $setting_slug ); // var_dump( get_locale() ); // var_dump( $value ); // IF Value is empty and it's message string - try to get translated if ( $setting_path[0] == 'messages' || $setting_path[0] == 'mails' ) { $value = stripslashes($value); } // // if ( is_admin() && !$value && $setting_path[0] == 'messages' ){ // // // SKIP if we on Default language // global $sitepress; // // $current_language = $sitepress->get_current_language(); // //var_dump( $current_language ); // $current_language_code = $sitepress->get_locale_from_language_code( $current_language ); // // switch_to_locale( $current_language_code ); // // var_dump($current_language_code); // // $fields = $this->get_section_settings_fields('messages'); // // $default_value = $fields[$setting_slug]->default_value(); // if ($default_value) { // $__value = __($default_value, 'ajax-login-and-registration-modal-popup'); // if ($default_value !== $__value) { // $value = $__value; // } // } // // } // FOR PO/MO - call always // !$value && if ($setting_path[0] === 'messages' && defined("LRM/SETTINGS/TRY_GET_TRANSLATED")) { $fields = $this->get_section_settings_fields('messages'); $default_value = $fields[$setting_slug]->default_value(); if ($default_value) { $__value = __($default_value, 'ajax-login-and-registration-modal-popup'); if ($default_value !== $__value) { $value = $__value; } } } //restore_previous_locale(); return $do_stripslashes ? stripslashes( $value ) : $value; } /** * Update single setting value * @uses SettingsAPI Settings API class * * @param string $setting_slug setting section/group/field separated with / * @param mixed $new_value * * @return bool * @throws Exception * @since 1.51 */ public function update_setting($setting_slug, $new_value) { $setting_path = explode('/', $setting_slug); if ( count($setting_path) !== 3 ) { throw new Exception('Invalid $setting_slug: ' . $setting_slug); } $res = update_option( 'lrm_' . $setting_path[0] . '[' . $setting_path[1] . ']', $new_value ); // var_dump( 'lrm_' . $setting_path[0] ); // var_dump( $new_value ); // var_dump( get_option('lrm_' . $setting_path[0] ) ); return $res; } /** * Get translated option value (string) * If enabled WPML - then try return translated * * @param string $setting_slug * @param $section_slug * * @return string * @since 1.33 */ protected function _get_maybe_wpml_translated_string($setting_slug, $section_slug) { // && isset($this->wpml_labels[$key]) if ( class_exists('SitePress') ) { // SKIP if we on Default language global $sitepress; $current_language = $sitepress->get_current_language(); $default_language = $sitepress->get_default_language(); /** * Switch Language for AJAX * @since 1.33 */ if ( defined("LRM_IS_AJAX") ) { /** * @var WPML_Language_Resolution $wpml_language_resolution */ global $wpml_language_resolution; if ($current_language != $wpml_language_resolution->get_referrer_language_code()) { $sitepress->switch_lang($wpml_language_resolution->get_referrer_language_code()); $current_language = $sitepress->get_current_language(); } } if ( $default_language == $current_language ) { return null; } $fields = $this->get_section_settings_fields($section_slug); /** * @see https://wpml.org/wpml-hook/wpml_translate_single_string/ * @since 1.29 */ return apply_filters( 'wpml_translate_single_string', $fields[$setting_slug]->default_value(), 'AJAX Login & Registration modal', $fields[$setting_slug]->name(). ' [' . $fields[$setting_slug]->group() . '/' .$fields[$setting_slug]->slug() . ']' ); //return wpml_register_single_string('AJAX Login & Registration modal', $fields[$setting_slug]->name(). ' [' . $fields[$setting_slug]->group() . '/' .$fields[$setting_slug]->slug() . ']', $fields[$setting_slug]->default_value()); } return null; } /** * Add strings to WPML strings translator * * @since 1.33 */ protected function register_wpml_strings() { do_action( 'wpml_multilingual_options', 'lrm_messages' ); do_action( 'wpml_multilingual_options', 'lrm_mails' ); do_action( 'wpml_multilingual_options', 'lrm_messages_pro' ); // && function_exists('icl_register_string') if ( class_exists('SitePress') ) { //switch_to_locale( 'en_US' ); // $messages = $this->get_section_settings_fields('messages'); // $mails = $this->get_section_settings_fields('mails'); // // $all = $messages + $mails; // // if ( lrm_is_pro() ) { // $messages_pro = $this->get_section_settings_fields('messages_pro'); // $all = $all + $messages_pro; // } // // foreach ($all as $key => $field) { // /** // * @see https://wpml.org/wpml-hook/wpml_register_single_string // * @since 1.29 // */ // do_action( 'wpml_register_single_string', 'AJAX Login & Registration modal', $field->name(). ' [' . $field->group() . '/' .$field->slug() . ']', $field->default_value() ); // // icl_register_string is deprecated // //icl_register_string( 'AJAX Login & Registration modal', $field->name(). ' [' . $field->group() . '/' .$field->slug() . ']', $field->default_value() ); // } //restore_previous_locale(); } } /** * Get all fields from section * * @param string $section_slug * * @since 1.24 * * @return \underDEV\Utils\Settings\Field[] */ public function get_section_settings_fields( $section_slug ) { $fields = array(); $section = $this->settings->get_section( $section_slug ); foreach ( $section->get_groups() as $group_slug => $group ) { foreach ( $group->get_fields() as $field_slug => $field ) { $fields[ $section_slug . '/' . $group_slug . '/' . $field_slug ] = $field; } } return $fields; } /** * Get all fields from section * * @param string $section_slug * * @since 1.24 * * @return \underDEV\Utils\Settings\Field[] */ public function get_sections( ) { return $this->settings->get_sections( ); } private function _reset_translations() { delete_option( "lrm_messages" ); echo "Reset done!"; die(); } /** * @return LRM_Settings */ public static function get(){ if ( !self::$instance ) { self::$instance = new LRM_Settings(); } return self::$instance; } }