function mltlngg_settings_page() { global $mltlngg_options, $mltlngg_message_value; if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } /* Change settings options */ if (isset($_POST['mltlngg_settings_form_was_send']) && check_admin_referer('mltlngg_settings_form', 'mltlngg_settings_form_field')) { if (isset($_POST['mltlngg_settings_form_submit'])) { $mltlngg_options['enabled_new_language'] = !isset($_POST['mltlngg_new_language_enable']) ? false : true; $mltlngg_options['autosave_editor_content'] = !isset($_POST['mltlngg_autosave_editor_content']) ? false : true; $mltlngg_options['wp_localization'] = !isset($_POST['mltlngg_wp_localization']) ? false : true; $mltlngg_options['language_switcher'] = isset($_POST['mltlngg_language_switcher']) ? $_POST['mltlngg_language_switcher'] : 'drop-down-list'; update_option('mltlngg_options', $mltlngg_options); $mltlngg_message_value['success'] = __('Settings saved', 'multilanguage'); } } /* Adding language */ if (isset($_POST['mltlngg_add_new_language_form_was_send']) && !empty($_POST['mltlngg_lang_list']) && check_admin_referer('mltlngg_add_new_language_form', 'mltlngg_add_new_language_field')) { if (preg_match('/^([a-z]{2,3}|[a-z]{2}[_][A-Z]{2})-([\\D]+?)$/u', $_POST['mltlngg_lang_list'], $matches)) { /* If language data is correct */ mltlngg_add_language($matches[1], $matches[2]); /* Add new language (locale, name) */ $mltlngg_message_value['success'] = __('Language added', 'multilanguage'); } else { /* If language data is incorrect */ $mltlngg_message_value['error'] = __('Incorrect language data', 'multilanguage'); } } /* Change priority and default language options */ if (isset($_POST['mltlngg_language_form_was_send']) && check_admin_referer('mltlngg_current_languages_form', 'mltlngg_current_languages_field')) { if (isset($_POST['mltlngg_language_form_submit'])) { foreach ($mltlngg_options['list_of_languages'] as $key => $mltlngg_language_to_action) { if (isset($_POST[$mltlngg_language_to_action['locale']]) && NULL != $_POST[$mltlngg_language_to_action['locale']]) { $mltlngg_options['list_of_languages'][$key]['priority'] = $_POST[$mltlngg_language_to_action['locale']]; } $mltlngg_priority[$key] = $mltlngg_options['list_of_languages'][$key]['priority']; } if (isset($_POST['mltlngg_default_lang']) && NULL != $_POST['mltlngg_default_lang']) { $mltlngg_options['default_language'] = $_POST['mltlngg_default_lang']; } /* Sorting list of language by priority */ array_multisort($mltlngg_priority, SORT_ASC, $mltlngg_options['list_of_languages']); update_option('mltlngg_options', $mltlngg_options); $mltlngg_message_value['success'] = __('Settings saved', 'multilanguage'); } } /* Actions for table */ if (isset($_GET['action']) && isset($_GET['locale']) && wp_verify_nonce($_GET['_wpnonce'], 'mltlngg-action')) { if (preg_match('/[a-z]{2,3}|[a-z]{2}[_][A-Z]{2}/', $_GET['locale']) && preg_match('(enable|disable|delete)', $_GET['action'], $matches)) { mltlngg_actions($matches[0], $_GET['locale']); } } /* Bulk actions part */ if ((isset($_POST['action']) && -1 != $_POST['action'] || isset($_POST['action2']) && -1 != $_POST['action2']) && isset($_POST['language']) && !isset($_POST['mltlngg_language_form_submit']) && check_admin_referer('mltlngg_current_languages_form', 'mltlngg_current_languages_field')) { foreach ($_POST['language'] as $mltlngg_language_to_action) { if (-1 != $_POST['action']) { mltlngg_actions($_POST['action'], $mltlngg_language_to_action); } elseif (-1 != $_POST['action2']) { mltlngg_actions($_POST['action2'], $mltlngg_language_to_action); } } } /* Display tab of setting page */ if (!isset($_GET['tab'])) { mltlngg_languages_tab(); } else { switch ($_GET['tab']) { case 'settings': mltlngg_settings_tab(); break; } } }
function mltlngg_settings_page() { global $mltlngg_options, $mltlngg_default_options, $mltlngg_plugin_info, $mltlngg_languages, $wp_version; $mltlngg_message_value = array('success' => '', 'error' => ''); /* Change settings options */ if (isset($_POST['mltlngg_settings_form_was_send']) && check_admin_referer('mltlngg_settings_form', 'mltlngg_settings_form_field')) { if (isset($_POST['bws_hide_premium_options'])) { $hide_result = bws_hide_premium_options($mltlngg_options); $mltlngg_options = $hide_result['options']; } $mltlngg_options['enabled_new_language'] = isset($_POST['mltlngg_new_language_enable']) ? true : false; $mltlngg_options['autosave_editor_content'] = isset($_POST['mltlngg_autosave_editor_content']) ? true : false; $mltlngg_options['display_alternative_link'] = isset($_POST['mltlngg_display_alternative_link']) ? true : false; $mltlngg_options['hide_link_slug'] = isset($_POST['mltlngg_hide_link_slug']) ? true : false; $mltlngg_options['wp_localization'] = isset($_POST['mltlngg_wp_localization']) ? true : false; $mltlngg_options['language_switcher'] = isset($_POST['mltlngg_language_switcher']) ? $_POST['mltlngg_language_switcher'] : 'drop-down-list'; $mltlngg_options['search'] = $_POST['mltlngg_search']; update_option('mltlngg_options', $mltlngg_options); $mltlngg_message_value['success'] = __('Settings saved', 'multilanguage'); } /* Adding language */ if (isset($_POST['mltlngg_add_new_language_form_was_send']) && !empty($_POST['mltlngg_lang_list']) && check_admin_referer('mltlngg_add_new_language_form', 'mltlngg_add_new_language_field')) { if (preg_match('/^([a-z]{2,3}|[a-z]{2,3}[_][A-Z]{2,3})-(.+?)$/u', $_POST['mltlngg_lang_list'], $matches)) { /* If language data is correct */ $done = mltlngg_add_language($matches[1], $matches[2]); /* Add new language (locale, name) */ if ($done) { $mltlngg_message_value['success'] = __('Language added', 'multilanguage'); } } else { /* If language data is incorrect */ $mltlngg_message_value['error'] = __('Incorrect language data', 'multilanguage'); } } /* Change priority and default language options */ if (isset($_POST['mltlngg_language_form_was_send']) && check_admin_referer('mltlngg_current_languages_form', 'mltlngg_current_languages_field')) { if (isset($_POST['mltlngg_language_form_submit'])) { foreach ($mltlngg_options['list_of_languages'] as $key => $mltlngg_language_to_action) { if (isset($_POST[$mltlngg_language_to_action['locale']]) && NULL != $_POST[$mltlngg_language_to_action['locale']]) { $mltlngg_options['list_of_languages'][$key]['priority'] = $_POST[$mltlngg_language_to_action['locale']]; } $mltlngg_priority[$key] = $mltlngg_options['list_of_languages'][$key]['priority']; } /* change default langguage */ if (isset($_POST['mltlngg_default_lang']) && !is_null($_POST['mltlngg_default_lang'])) { foreach ($mltlngg_options['list_of_languages'] as $key => $language) { /* if language data have been finded */ if (array_search($_POST['mltlngg_default_lang'], $language, true)) { $mltlngg_options['default_language'] = $_POST['mltlngg_default_lang']; $mltlngg_options['list_of_languages'][$key]['enable'] = true; break; } } } /* Sorting list of language by priority */ array_multisort($mltlngg_priority, SORT_ASC, $mltlngg_options['list_of_languages']); update_option('mltlngg_options', $mltlngg_options); $mltlngg_message_value['success'] = __('Settings saved', 'multilanguage'); } } /* Actions for table of languages */ if (!isset($_POST['mltlngg_language_form_submit'])) { if (isset($_POST['mltlngg_language']) && check_admin_referer('mltlngg_current_languages_form', 'mltlngg_current_languages_field')) { if (isset($_POST['action']) && -1 != $_POST['action']) { $action = $_POST['action']; $language = $_POST['mltlngg_language']; } elseif (isset($_POST['action2']) && -1 != $_POST['action2']) { $action = $_POST['action2']; $language = $_POST['mltlngg_language']; } } elseif (isset($_GET['mltlngg_language']) && wp_verify_nonce($_GET['_wpnonce'], 'mltlngg-action')) { $action = $_GET['action']; $language = $_GET['mltlngg_language']; } $action_result = isset($action) && in_array($action, array('enable', 'disable', 'delete')) ? mltlngg_actions($action, $language) : array(); if (isset($action_result['error'])) { $mltlngg_message_value['error'] .= $action_result['error']; } if (isset($action_result['success'])) { $mltlngg_message_value['success'] .= $action_result['success']; } } if (isset($_REQUEST['bws_restore_confirm']) && check_admin_referer(plugin_basename(__FILE__), 'bws_settings_nonce_name')) { $mltlngg_options = $mltlngg_default_options; update_option('mltlngg_options', $mltlngg_options); $mltlngg_message_value['success'] = __('All plugin settings were restored.', 'multilanguage'); } $bws_hide_premium_options_check = bws_hide_premium_options_check($mltlngg_options); /* GO PRO */ if (isset($_GET['tab']) && 'go_pro' == $_GET['tab']) { $go_pro_result = bws_go_pro_tab_check(plugin_basename(__FILE__), 'mltlngg_options'); if (!empty($go_pro_result['error'])) { $mltlngg_message_value['error'] = $go_pro_result['error']; } elseif (!empty($go_pro_result['message'])) { $mltlngg_message_value['success'] = $go_pro_result['message']; } } ?> <div class="wrap" id="mltlngg-settings"> <h1><?php _e('Multilanguage Settings', 'multilanguage'); if (!(isset($_GET['tab']) && in_array($_GET['tab'], array('settings', 'go_pro')))) { ?> <a class="page-title-action hide-if-no-js" href="#" id="mltlngg-add-lang-link"><?php _e('Add language', 'multilanguage'); ?> </a> <?php } ?> </h1> <!-- Display language tab on setting page --> <h2 class="nav-tab-wrapper"> <a class="nav-tab<?php if (!isset($_GET['tab'])) { echo ' nav-tab-active'; } ?> " href="<?php echo admin_url('admin.php?page=mltlngg_settings', ''); ?> "><?php _e('Languages', 'multilanguage'); ?> </a> <a class="nav-tab<?php if (isset($_GET['tab']) && 'settings' == $_GET['tab']) { echo ' nav-tab-active'; } ?> " href="<?php echo admin_url('admin.php?page=mltlngg_settings&tab=settings', ''); ?> "><?php _e('Settings', 'multilanguage'); ?> </a> <a class="nav-tab <?php if (isset($_GET['tab']) && 'custom_code' == $_GET['tab']) { echo ' nav-tab-active'; } ?> " href="admin.php?page=mltlngg_settings&tab=custom_code"><?php _e('Custom code', 'multilanguage'); ?> </a> <a class="nav-tab bws_go_pro_tab<?php if (isset($_GET['tab']) && 'go_pro' == $_GET['tab']) { echo ' nav-tab-active'; } ?> " href="admin.php?page=mltlngg_settings&tab=go_pro"><?php _e('Go PRO', 'multilanguage'); ?> </a> </h2><!-- .nav-tab-wrapper --> <?php if (!empty($mltlngg_message_value['error'])) { ?> <div class="error below-h2"><p><strong><?php echo $mltlngg_message_value['error']; ?> </strong></p></div> <?php } elseif (!empty($mltlngg_message_value['success'])) { ?> <div class="updated fade below-h2"><p><strong><?php echo $mltlngg_message_value['success']; ?> </strong></p></div> <?php } if (!empty($hide_result['message'])) { ?> <div class="updated fade below-h2"><p><strong><?php echo $hide_result['message']; ?> </strong></p></div> <?php } bws_show_settings_notice(); /* Display tab of setting page */ if (!isset($_GET['tab'])) { /* Form for adding new language */ mltlngg_add_language_form(); ?> <!-- /form for adding new language --> <form class="bws_form" name="mltlngg_current_languages_form" method="post" action="" id="mltlngg-current-languages-form"> <!-- display table of languages, source - table.php --> <?php mltlngg_table(); wp_nonce_field('mltlngg_current_languages_form', 'mltlngg_current_languages_field'); ?> <!-- /table of languages --> <br> <input id="bws-submit-button" type="submit" name="mltlngg_language_form_submit" class="button-primary" value="<?php _e('Save changes', 'multilanguage'); ?> "> <input type="hidden" name="mltlngg_language_form_was_send" value="1" /> </form><!-- #mltlngg_current_languages_form --> <div><p> </p></div> <?php } elseif ('settings' == $_GET['tab']) { if (isset($_REQUEST['bws_restore_default']) && check_admin_referer(plugin_basename(__FILE__), 'bws_settings_nonce_name')) { bws_form_restore_default_confirm(plugin_basename(__FILE__)); } else { ?> <p><?php _e('If you would like to display Language switcher with a widget, you need to add the widget "Multilanguage" in the Widgets tab.', 'multilanguage'); ?> </p> <div> <?php printf(__("If you would like to add a Language switcher to your page or post, please use %s button", 'multilanguage'), '<code><img style="vertical-align: sub;" src="' . plugins_url('bws_menu/images/shortcode-icon.png', __FILE__) . '" alt=""/></code>'); ?> <div class="bws_help_box bws_help_box_right dashicons dashicons-editor-help"> <div class="bws_hidden_help_text" style="min-width: 260px;"> <?php printf(__("You can add Language switcher to your page or post by clicking on %s button in the content edit block using the Visual mode. If the button isn't displayed, please use the shortcode %s.", 'multilanguage'), '<code><img style="vertical-align: sub;" src="' . plugins_url('bws_menu/images/shortcode-icon.png', __FILE__) . '" alt="" /></code>', '<code>[multilanguage_switcher]</code>'); ?> </div> </div> </div> <p><?php _e('Also, you can paste the following strings into the template source code', 'multilanguage'); ?> <code><?php if ( function_exists( 'mltlngg_display_switcher' ) ) mltlngg_display_switcher(); ?></code> <!-- Table with options form --> <form class="bws_form" name="mltlngg_settings_form" method="post" action="" id="mltlngg-current-languages-form"> <table class="form-table" style="max-width: 700px;"> <tr valign="middle"> <th scope="row"><?php _e('Enable new language', 'multilanguage'); ?> </th> <td> <input id="mltlngg_new_language_enable" name="mltlngg_new_language_enable" type="checkbox" value="true" <?php echo true == $mltlngg_options['enabled_new_language'] ? ' checked' : ''; ?> > <span class="bws_info"><?php _e("The newly added language will be enabled automatically", 'multilanguage'); ?> </span> </td> </tr> <tr valign="middle"> <th scope="row"><?php _e('Autosave translation in the editor', 'multilanguage'); ?> </th> <td> <input name="mltlngg_autosave_editor_content" type="checkbox" value="true" <?php echo true == $mltlngg_options['autosave_editor_content'] ? ' checked' : ''; ?> > <span class="bws_info"><?php _e("When switching edit posts/pages translation tab, the changes made in the previous tab will be saved automatically (only when the Javascript is enabled)", 'multilanguage'); ?> </span> </td> </tr> <tr valign="middle"> <th scope="row"><?php _e('Switch Wordpress localization', 'multilanguage'); ?> </th> <td><input name="mltlngg_wp_localization" type="checkbox" value="true" <?php echo true == $mltlngg_options['wp_localization'] ? ' checked' : ''; ?> > <span class="bws_info"><?php _e("When changing the language in the frontend, WordPress localization will also be changed (only in case additional WordPress language packs are installed)", 'multilanguage'); ?> </span></td> </tr> <tr valign="middle"> <th scope="row"><?php _e('Language switcher', 'multilanguage'); ?> </th> <td> <fieldset> <div style="clear: both;"> <label> <input name="mltlngg_language_switcher" type="radio" value="drop-down-list" <?php if ($mltlngg_options['language_switcher'] == 'drop-down-list') { echo 'checked'; } ?> /> <?php _e('Drop-down languages list', 'multilanguage'); ?> </label> <div class="bws_help_box dashicons dashicons-editor-help mltlngg_thumb_block"> <div class="bws_hidden_help_text"><img title="" src="<?php echo plugins_url('images/tooltip_drop_down_list.png', __FILE__); ?> " alt="" /></div> </div> </div> <div> <label> <input name="mltlngg_language_switcher" type="radio" value="drop-down-icons" <?php if ($mltlngg_options['language_switcher'] == 'drop-down-icons') { echo 'checked'; } ?> /> <?php _e('Drop-down flag icons', 'multilanguage'); ?> </label> <div class="bws_help_box dashicons dashicons-editor-help mltlngg_thumb_block"> <div class="bws_hidden_help_text"><img title="" src="<?php echo plugins_url('images/tooltip_drop_down_icons.png', __FILE__); ?> " alt="" /></div> </div> </div> <div> <label> <input name="mltlngg_language_switcher" type="radio" value="flags-icons" <?php if ($mltlngg_options['language_switcher'] == 'flags-icons') { echo 'checked'; } ?> /> <?php _e('Flag icons', 'multilanguage'); ?> </label> <div class="bws_help_box dashicons dashicons-editor-help mltlngg_thumb_block"> <div class="bws_hidden_help_text"><img title="" src="<?php echo plugins_url('images/tooltip_flags_icons.png', __FILE__); ?> " alt="" /></div> </div> </div> </fieldset> </td> </tr> <tr valign="middle"> <th scope="row"><?php _e("Display alternative page links", 'multilanguage'); ?> </th> <td> <input type="checkbox" id="mltlngg_display_alternative_link" name="mltlngg_display_alternative_link" value="1" <?php echo true == $mltlngg_options['display_alternative_link'] ? ' checked="checked"' : ''; ?> /> <div class="bws_help_box dashicons dashicons-editor-help mltlngg_thumb_block"> <div class="bws_hidden_help_text" style="width: 200px;"> <p><?php printf(__('With this option, there will be added links to your current page for each language from your site into the tag %s', 'multilanguage'), '<head>'); ?> </p> </div> </div> </td> </tr> <tr valign="middle"> <th scope="row"><?php _e("Hide link slug for default language", 'multilanguage'); ?> </th> <td> <input type="checkbox" id="mltlngg_hide_link_slug" name="mltlngg_hide_link_slug" value="1" <?php echo true == $mltlngg_options['hide_link_slug'] ? ' checked="checked"' : ''; ?> /> </td> </tr> <tr valign="middle"> <th scope="row"><?php _e('Default searching by', 'multilanguage'); ?> </th> <td> <fieldset> <label> <input type="radio" name="mltlngg_search" value="single" <?php if ('single' == $mltlngg_options['search']) { echo ' checked'; } ?> /> <?php _e('selected language', 'multilanguage'); ?> </label><br> <label> <input type="radio" name="mltlngg_search" value="all" <?php if ('all' == $mltlngg_options['search']) { echo ' checked'; } ?> /> <?php _e('all available languages', 'multilanguage'); ?> </label> </fieldset> </td> </tr> </table><!-- .form-table --> <?php if (!$bws_hide_premium_options_check) { ?> <div class="bws_pro_version_bloc" style="overflow: visible;"> <div class="bws_pro_version_table_bloc"> <button type="submit" name="bws_hide_premium_options" class="notice-dismiss bws_hide_premium_options" title="<?php _e('Close', 'multilanguage'); ?> "></button> <div class="bws_table_bg"></div> <table class="form-table bws_pro_version"> <tr valign="middle"> <th scope="row"><?php _e("Determining the locale using the user's IP", 'multilanguage'); ?> </th> <td> <input type="checkbox" disabled id="mltlngg_determining_locale" name="mltlngg_determining_locale" value="true" /> </td> </tr> <tr valign="middle" class="mltlngg_display_add_block"> <th><?php _e('Update GeoIP', 'multilanguage'); ?> </th> <td> <label style="display: inline-block;margin-right: 20px;"><?php _e('every', 'multilanguage'); ?> <input type="number" value="3" style="width: 50px;" disabled="disabled" /> <?php _e('months', 'multilanguage'); ?> </label> <div style="display: inline-block;position: relative;"> <input type="submit" class="button bwsplgns_need_disable" value="<?php _e('Update now', 'multilanguage'); ?> " disabled="disabled" /> </div> <div class="bws_help_box bws_help_box_left dashicons dashicons-editor-help" style="position: relative;z-index: 10;"> <div class="bws_hidden_help_text" style="min-width: 220px;"> <p style="text-indent: 15px;"> <?php _e('This option allows you to download lists with registered IP addresses all over the world to the database (from', 'multilanguage'); ?> <a href="https://www.maxmind.com" target="_blank">https://www.maxmind.com</a>). </p> <p style="text-indent: 15px;"> <?php _e('With this, you receive an information about each IP address, and to which country it belongs to. You can select the desired frequency for IP database updating', 'multilanguage'); ?> . </p> <p style="text-indent: 15px;"> <?php _e('If you need to update GeoIP immediately, please click on the "Update now" button and wait until the operation is finished', 'multilanguage'); ?> . </p> <noscript> <div class="update-nag" style="margin-top: 0;"><?php _e('Due to the fact that JavaScript is disabled, GeoIP will be updated via wp_cron', 'multilanguage'); ?> .</div> </noscript> <p style="text-indent: 15px;"> <?php _e('Read more about', 'multilanguage'); ?> <a href="https://www.maxmind.com/en/geoip2-services-and-databases" target="_blank">GeoIp</a>. </p> </div> </div> <p id="bwscntrtbl_message"><?php _e('Last update was carried out', 'multilanguage'); ?> 2016-01-22 12:59:04</p> </td> </tr> <tr valign="top"> <th scope="row" colspan="2"> * <?php _e('If you upgrade to Pro version all your settings will be saved.', 'multilanguage'); ?> </th> </tr> </table> </div> <div class="bws_pro_version_tooltip"> <div class="bws_info"> <?php _e('Unlock premium options by upgrading to Pro version', 'multilanguage'); ?> </div> <a class="bws_button" href="http://bestwebsoft.com/products/multilanguage/?k=fa164f00821ed3a87e6f78cb3f5c277b&pn=143&v=<?php echo $mltlngg_plugin_info["Version"]; ?> &wp_v=<?php echo $wp_version; ?> " target="_blank" title="Multilanguage Pro"><?php _e('Learn More', 'multilanguage'); ?> </a> <div class="clear"></div> </div> </div> <?php } ?> <p> <input id="bws-submit-button" type="submit" name="mltlngg_settings_form_submit" class="button-primary" value="<?php _e('Save changes', 'multilanguage'); ?> "> <input type="hidden" name="mltlngg_settings_form_was_send" value="1"> <?php wp_nonce_field('mltlngg_settings_form', 'mltlngg_settings_form_field'); ?> </p> </form><!-- name="mltlngg_settings_form" --> <!-- /table with options form --> <?php bws_form_restore_default_settings(plugin_basename(__FILE__)); } } elseif ('custom_code' == $_GET['tab']) { bws_custom_code_tab(); } elseif ('go_pro' == $_GET['tab']) { bws_go_pro_tab_show($bws_hide_premium_options_check, $mltlngg_plugin_info, plugin_basename(__FILE__), 'mltlngg_settings', 'mltlnggpr_settings', 'multilanguage-pro/multilanguage-pro.php', 'multilanguage', 'fa164f00821ed3a87e6f78cb3f5c277b', '143', isset($go_pro_result['pro_plugin_is_activated'])); } bws_plugin_reviews_block($mltlngg_plugin_info['Name'], 'multilanguage'); ?> </div><!-- .wrap --> <?php }