Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres...
File: sitepress.class.php
&& is_admin()
[500] Fix | Delete
) {
[501] Fix | Delete
$this->taxonomy_translation = new WPML_Taxonomy_Translation( '', array(), new WPML_UI_Screen_Options_Factory( $this ) );
[502] Fix | Delete
}
[503] Fix | Delete
[504] Fix | Delete
if ( WPML_LANGUAGE_NEGOTIATION_TYPE_DOMAIN === (int) $this->get_setting( 'language_negotiation_type' )
[505] Fix | Delete
&& $this->get_setting( 'language_per_domain_sso_enabled', false )
[506] Fix | Delete
) {
[507] Fix | Delete
$sso = new WPML_Language_Per_Domain_SSO( $this, new WPML_PHP_Functions() );
[508] Fix | Delete
$sso->init_hooks();
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
[512] Fix | Delete
/**
[513] Fix | Delete
* Sets the current language in \SitePress::$this_lang, redirects if
[514] Fix | Delete
* frontend requests point to incomplete or incorrect urls, un-sets the
[515] Fix | Delete
* $_GET['lang'] and $_GET['admin_bar'] values so that upload.php is able to
[516] Fix | Delete
* enqueue 'media-grid' correctly without url parameters breaking its
[517] Fix | Delete
* functionality.
[518] Fix | Delete
*/
[519] Fix | Delete
public function maybe_set_this_lang() {
[520] Fix | Delete
/** @var WPML_Request $wpml_request_handler */
[521] Fix | Delete
global $wpml_request_handler, $pagenow, $wpml_language_resolution, $mode;
[522] Fix | Delete
[523] Fix | Delete
if ( ! defined( 'WP_ADMIN' ) && isset( $_SERVER['HTTP_HOST'] ) && did_action( 'init' ) ) {
[524] Fix | Delete
require_once WPML_PLUGIN_PATH . '/inc/request-handling/redirection/wpml-frontend-redirection.php';
[525] Fix | Delete
/** @var WPML_Frontend_Request $wpml_request_handler */
[526] Fix | Delete
$redirect_helper = _wpml_get_redirect_helper();
[527] Fix | Delete
$redirection = new WPML_Frontend_Redirection(
[528] Fix | Delete
$this,
[529] Fix | Delete
$wpml_request_handler, $redirect_helper,
[530] Fix | Delete
$wpml_language_resolution
[531] Fix | Delete
);
[532] Fix | Delete
$this->set_this_lang( $redirection->maybe_redirect() );
[533] Fix | Delete
} else {
[534] Fix | Delete
$this->set_this_lang( $wpml_request_handler->get_requested_lang() );
[535] Fix | Delete
}
[536] Fix | Delete
[537] Fix | Delete
$wpml_request_handler->set_language_cookie( $this->this_lang );
[538] Fix | Delete
[539] Fix | Delete
if ( $pagenow === 'upload.php' && isset( $mode ) && 'grid' === $mode ) {
[540] Fix | Delete
$_GET['lang'] = null;
[541] Fix | Delete
$_GET['admin_bar'] = null;
[542] Fix | Delete
}
[543] Fix | Delete
}
[544] Fix | Delete
[545] Fix | Delete
function load_dependencies() {
[546] Fix | Delete
do_action( 'wpml_load_dependencies' );
[547] Fix | Delete
}
[548] Fix | Delete
[549] Fix | Delete
/**
[550] Fix | Delete
* Sets up all term/taxonomy actions for use outside Translations Management or the Post Edit screen
[551] Fix | Delete
*/
[552] Fix | Delete
function set_term_filters_and_hooks() {
[553] Fix | Delete
// The delete filter only ensures the synchronizing of delete actions between translations of a term.
[554] Fix | Delete
add_action( 'delete_term', array( $this, 'delete_term' ), 1, 3 );
[555] Fix | Delete
add_action( 'set_object_terms', array( 'WPML_Terms_Translations', 'set_object_terms_action' ), 10, 6 );
[556] Fix | Delete
[557] Fix | Delete
add_action( 'created_term_translation', array( 'WPML_Terms_Translations', 'sync_ttid_action' ), 10, 3 );
[558] Fix | Delete
// filters terms by language for the term/tag-box autoselect
[559] Fix | Delete
if ( ( isset( $_GET['action'] ) && 'ajax-tag-search' === $_GET['action'] ) || ( isset( $_POST['action'] ) && 'get-tagcloud' === $_POST['action'] ) ) {
[560] Fix | Delete
add_filter( 'get_terms', array( 'WPML_Terms_Translations', 'get_terms_filter' ), 10, 2 );
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
add_filter( 'terms_clauses', array( $this, 'terms_clauses' ), 10, 3 );
[564] Fix | Delete
add_action( 'create_term', array( $this, 'create_term' ), 1, 3 );
[565] Fix | Delete
add_action( 'edit_term', array( $this, 'create_term' ), 1, 3 );
[566] Fix | Delete
add_filter( 'get_terms_args', array( $this, 'get_terms_args_filter' ), 10, 2 );
[567] Fix | Delete
add_filter( 'get_edit_term_link', array( $this, 'get_edit_term_link' ), 1, 4 );
[568] Fix | Delete
add_action( 'deleted_term_relationships', array( $this, 'deleted_term_relationships' ), 10, 2 );
[569] Fix | Delete
add_action( 'wp_ajax_icl_repair_broken_type_and_language_assignments', 'icl_repair_broken_type_and_language_assignments' );
[570] Fix | Delete
// adjust queried categories and tags ids according to the language
[571] Fix | Delete
if ( (bool) $this->get_setting( 'auto_adjust_ids' ) ) {
[572] Fix | Delete
add_action( 'wp_list_pages_excludes', array( $this, 'adjust_wp_list_pages_excludes' ) );
[573] Fix | Delete
if ( ! $this->get_wp_api()
[574] Fix | Delete
->is_admin()
[575] Fix | Delete
|| $this->get_wp_api()
[576] Fix | Delete
->constant( 'DOING_AJAX' )
[577] Fix | Delete
) {
[578] Fix | Delete
add_filter( 'get_term', array( $this, 'get_term_adjust_id' ), 1, 1 );
[579] Fix | Delete
add_action( 'edited_term', array( $this, 'edited_term_action' ) );
[580] Fix | Delete
add_filter( 'get_pages', array( $this, 'get_pages_adjust_ids' ), 1, 2 );
[581] Fix | Delete
}
[582] Fix | Delete
}
[583] Fix | Delete
add_action( 'clean_term_cache', array( $this, 'clear_elements_cache' ), 10, 2 );
[584] Fix | Delete
[585] Fix | Delete
}
[586] Fix | Delete
[587] Fix | Delete
function remove_admin_language_switcher() {
[588] Fix | Delete
remove_action( 'wp_before_admin_bar_render', array( $this, 'admin_language_switcher' ) );
[589] Fix | Delete
}
[590] Fix | Delete
[591] Fix | Delete
function rebuild_language_information() {
[592] Fix | Delete
$this->set_setting( 'just_reactivated', 0 );
[593] Fix | Delete
$this->save_settings();
[594] Fix | Delete
/** @var TranslationManagement $iclTranslationManagement */
[595] Fix | Delete
global $iclTranslationManagement;
[596] Fix | Delete
if ( $iclTranslationManagement ) {
[597] Fix | Delete
$iclTranslationManagement->add_missing_language_information();
[598] Fix | Delete
}
[599] Fix | Delete
}
[600] Fix | Delete
[601] Fix | Delete
function setup() {
[602] Fix | Delete
$setup_complete = $this->get_setting( 'setup_complete' );
[603] Fix | Delete
if ( ! $setup_complete ) {
[604] Fix | Delete
$this->set_setting( 'setup_complete', false );
[605] Fix | Delete
}
[606] Fix | Delete
[607] Fix | Delete
return $setup_complete;
[608] Fix | Delete
}
[609] Fix | Delete
[610] Fix | Delete
public function user_lang_by_authcookie() {
[611] Fix | Delete
global $current_user;
[612] Fix | Delete
[613] Fix | Delete
if ( ! isset( $current_user ) ) {
[614] Fix | Delete
$username = '';
[615] Fix | Delete
if ( function_exists( 'wp_parse_auth_cookie' ) ) {
[616] Fix | Delete
$cookie_data = wp_parse_auth_cookie();
[617] Fix | Delete
$username = isset( $cookie_data['username'] ) ? $cookie_data['username'] : null;
[618] Fix | Delete
}
[619] Fix | Delete
$user_obj = new WP_User( null, $username );
[620] Fix | Delete
} else {
[621] Fix | Delete
$user_obj = $current_user;
[622] Fix | Delete
}
[623] Fix | Delete
$user_id = isset( $user_obj->ID ) ? $user_obj->ID : 0;
[624] Fix | Delete
$user_lang = $this->get_user_admin_language( $user_id );
[625] Fix | Delete
$user_lang = $user_lang ? $user_lang : $this->get_current_language();
[626] Fix | Delete
[627] Fix | Delete
return $user_lang;
[628] Fix | Delete
}
[629] Fix | Delete
[630] Fix | Delete
function get_current_user() {
[631] Fix | Delete
global $current_user;
[632] Fix | Delete
[633] Fix | Delete
return $current_user !== null ? $current_user : new WP_User();
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
function ajax_setup() {
[637] Fix | Delete
require_once WPML_PLUGIN_PATH . '/ajax.php';
[638] Fix | Delete
}
[639] Fix | Delete
[640] Fix | Delete
function check_if_admin_action_from_referer() {
[641] Fix | Delete
$referer = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : '';
[642] Fix | Delete
[643] Fix | Delete
return strpos( $referer, strtolower( admin_url() ) ) === 0;
[644] Fix | Delete
}
[645] Fix | Delete
[646] Fix | Delete
/**
[647] Fix | Delete
* Check translation mangement column screen option.
[648] Fix | Delete
*
[649] Fix | Delete
* @param string $post_type Current post type.
[650] Fix | Delete
*
[651] Fix | Delete
* @return bool
[652] Fix | Delete
*/
[653] Fix | Delete
public function show_management_column_content( $post_type ) {
[654] Fix | Delete
$custom_columns = new WPML_Custom_Columns( $this );
[655] Fix | Delete
[656] Fix | Delete
return $custom_columns->show_management_column_content( $post_type );
[657] Fix | Delete
}
[658] Fix | Delete
[659] Fix | Delete
function initialize_cache() {
[660] Fix | Delete
require_once WPML_PLUGIN_PATH . '/inc/cache.php';
[661] Fix | Delete
}
[662] Fix | Delete
[663] Fix | Delete
/**
[664] Fix | Delete
* @return icl_cache
[665] Fix | Delete
*/
[666] Fix | Delete
function get_translations_cache() {
[667] Fix | Delete
if ( ! isset( $this->icl_translations_cache ) ) {
[668] Fix | Delete
$this->icl_translations_cache = new icl_cache();
[669] Fix | Delete
}
[670] Fix | Delete
[671] Fix | Delete
return $this->icl_translations_cache;
[672] Fix | Delete
}
[673] Fix | Delete
[674] Fix | Delete
/**
[675] Fix | Delete
* @return icl_cache
[676] Fix | Delete
*/
[677] Fix | Delete
function get_language_name_cache() {
[678] Fix | Delete
if ( ! $this->icl_language_name_cache ) {
[679] Fix | Delete
$this->icl_language_name_cache = new icl_cache( 'language_name', true );
[680] Fix | Delete
}
[681] Fix | Delete
[682] Fix | Delete
return $this->icl_language_name_cache;
[683] Fix | Delete
}
[684] Fix | Delete
[685] Fix | Delete
public function set_admin_language( $admin_language = false ) {
[686] Fix | Delete
$default_language = $this->get_default_language();
[687] Fix | Delete
$this->admin_language = $admin_language ? $admin_language : $this->user_lang_by_authcookie();
[688] Fix | Delete
[689] Fix | Delete
$lang_codes = array_keys( $this->get_languages() );
[690] Fix | Delete
if ( (bool) $this->admin_language === true && ! in_array( $this->admin_language, $lang_codes, true ) ) {
[691] Fix | Delete
delete_user_meta( $this->get_current_user()->ID, 'icl_admin_language' );
[692] Fix | Delete
}
[693] Fix | Delete
if ( empty( $this->settings['admin_default_language'] ) || ! in_array(
[694] Fix | Delete
$this->settings['admin_default_language'], array_merge( $lang_codes, array( '_default_' ) ), true
[695] Fix | Delete
)
[696] Fix | Delete
) {
[697] Fix | Delete
$this->settings['admin_default_language'] = '_default_';
[698] Fix | Delete
$this->save_settings();
[699] Fix | Delete
}
[700] Fix | Delete
[701] Fix | Delete
if ( ! $this->admin_language ) {
[702] Fix | Delete
$this->admin_language = $this->settings['admin_default_language'];
[703] Fix | Delete
}
[704] Fix | Delete
if ( $this->admin_language === '_default_' && $default_language ) {
[705] Fix | Delete
$this->admin_language = $default_language;
[706] Fix | Delete
}
[707] Fix | Delete
}
[708] Fix | Delete
[709] Fix | Delete
function get_admin_language() {
[710] Fix | Delete
$current_user = $this->get_current_user();
[711] Fix | Delete
if (
[712] Fix | Delete
( ! empty( $current_user->ID ) && $this->get_wp_api()
[713] Fix | Delete
->get_user_meta(
[714] Fix | Delete
$current_user->ID,
[715] Fix | Delete
'icl_admin_language_for_edit',
[716] Fix | Delete
true
[717] Fix | Delete
) && $this->is_post_edit_screen() )
[718] Fix | Delete
|| $this->is_wpml_switch_language_triggered()
[719] Fix | Delete
) {
[720] Fix | Delete
$admin_language = $this->get_current_language();
[721] Fix | Delete
} else {
[722] Fix | Delete
$admin_language = $this->user_lang_by_authcookie();
[723] Fix | Delete
}
[724] Fix | Delete
[725] Fix | Delete
return $admin_language;
[726] Fix | Delete
}
[727] Fix | Delete
[728] Fix | Delete
public function is_wpml_switch_language_triggered() {
[729] Fix | Delete
return isset( $GLOBALS['icl_language_switched'] ) ? true : false;
[730] Fix | Delete
}
[731] Fix | Delete
[732] Fix | Delete
/**
[733] Fix | Delete
* @return bool
[734] Fix | Delete
*/
[735] Fix | Delete
function is_post_edit_screen() {
[736] Fix | Delete
global $pagenow;
[737] Fix | Delete
[738] Fix | Delete
$action = isset( $_GET['action'] ) ? $_GET['action'] : '';
[739] Fix | Delete
[740] Fix | Delete
return $pagenow === 'post-new.php' || ( $pagenow === 'post.php' && ( 0 === strcmp( $action, 'edit' ) ) );
[741] Fix | Delete
}
[742] Fix | Delete
[743] Fix | Delete
function get_user_admin_language_filter( $value, $user_id ) {
[744] Fix | Delete
return $this->get_user_admin_language( $user_id );
[745] Fix | Delete
}
[746] Fix | Delete
[747] Fix | Delete
function get_user_admin_language( $user_id, $reload = false ) {
[748] Fix | Delete
$user_admin_language = new WPML_User_Admin_Language( $this );
[749] Fix | Delete
[750] Fix | Delete
return $user_admin_language->get( $user_id, $reload );
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
/**
[754] Fix | Delete
* @todo rename this method, has it has nothing to do with the menus
[755] Fix | Delete
*/
[756] Fix | Delete
function administration_menu() {
[757] Fix | Delete
if ( ! $this->is_setup_complete() ) {
[758] Fix | Delete
$this->check_and_display_missing_records_notice();
[759] Fix | Delete
}
[760] Fix | Delete
}
[761] Fix | Delete
[762] Fix | Delete
private function check_and_display_missing_records_notice() {
[763] Fix | Delete
if ( ! $this->is_troubleshooting_page() && ! SitePress_Setup::languages_table_is_complete() ) {
[764] Fix | Delete
$troubleshooting_url = admin_url( 'admin.php?page=' . WPML_PLUGIN_FOLDER . '/menu/troubleshooting.php' );
[765] Fix | Delete
$troubleshooting_link = '<a href="'
[766] Fix | Delete
. $troubleshooting_url
[767] Fix | Delete
. '" title="'
[768] Fix | Delete
. esc_attr(
[769] Fix | Delete
__(
[770] Fix | Delete
'Troubleshooting',
[771] Fix | Delete
'sitepress'
[772] Fix | Delete
)
[773] Fix | Delete
)
[774] Fix | Delete
. '">'
[775] Fix | Delete
. __( 'Troubleshooting', 'sitepress' )
[776] Fix | Delete
. '</a>';
[777] Fix | Delete
$message = '';
[778] Fix | Delete
$message .= __(
[779] Fix | Delete
'WPML is missing some records in the languages tables and it cannot fully work until this issue is fixed.',
[780] Fix | Delete
'sitepress'
[781] Fix | Delete
);
[782] Fix | Delete
$message .= '<br />';
[783] Fix | Delete
$message .= sprintf(
[784] Fix | Delete
__(
[785] Fix | Delete
'Please go to the %1$s page and click on "%2$s" to fix this problem.',
[786] Fix | Delete
'sitepress'
[787] Fix | Delete
),
[788] Fix | Delete
$troubleshooting_link,
[789] Fix | Delete
__(
[790] Fix | Delete
'Clear language information and repopulate languages',
[791] Fix | Delete
'sitepress'
[792] Fix | Delete
)
[793] Fix | Delete
);
[794] Fix | Delete
$message .= '<br />';
[795] Fix | Delete
$message .= '<br />';
[796] Fix | Delete
$message .= __( 'This warning will disappear once this issue is fixed.', 'sitepress' );
[797] Fix | Delete
ICL_AdminNotifier::removeMessage( 'setup-incomplete' );
[798] Fix | Delete
ICL_AdminNotifier::addMessage( 'setup-incomplete', $message, 'error', false, false, false, 'setup', true );
[799] Fix | Delete
ICL_AdminNotifier::displayMessages( 'setup' );
[800] Fix | Delete
}
[801] Fix | Delete
}
[802] Fix | Delete
[803] Fix | Delete
function taxonomy_translation_page() {
[804] Fix | Delete
$this->taxonomy_translation->render();
[805] Fix | Delete
}
[806] Fix | Delete
[807] Fix | Delete
/**
[808] Fix | Delete
* @param int|string $blog_id
[809] Fix | Delete
*/
[810] Fix | Delete
function init_settings( $blog_id ) {
[811] Fix | Delete
$blog_id = (int) $blog_id;
[812] Fix | Delete
[813] Fix | Delete
if ( ! isset( $this->loaded_blog_id ) || $this->loaded_blog_id != $blog_id ) {
[814] Fix | Delete
$this->loaded_blog_id = $blog_id;
[815] Fix | Delete
$this->settings = get_option( 'icl_sitepress_settings' );
[816] Fix | Delete
$default_lang_code = isset( $this->settings['default_language'] ) ? $this->settings['default_language'] : false;
[817] Fix | Delete
load_wpml_url_converter( $this->settings, false, $default_lang_code );
[818] Fix | Delete
}
[819] Fix | Delete
}
[820] Fix | Delete
[821] Fix | Delete
/**
[822] Fix | Delete
* @param array|null $settings
[823] Fix | Delete
*/
[824] Fix | Delete
function save_settings( $settings = null ) {
[825] Fix | Delete
if ( null !== $settings ) {
[826] Fix | Delete
foreach ( $settings as $k => $v ) {
[827] Fix | Delete
if ( is_array( $v ) ) {
[828] Fix | Delete
foreach ( $v as $k2 => $v2 ) {
[829] Fix | Delete
$this->settings[ $k ][ $k2 ] = $v2;
[830] Fix | Delete
}
[831] Fix | Delete
} else {
[832] Fix | Delete
$this->settings[ $k ] = $v;
[833] Fix | Delete
}
[834] Fix | Delete
}
[835] Fix | Delete
}
[836] Fix | Delete
if ( ! empty( $this->settings ) ) {
[837] Fix | Delete
update_option( 'icl_sitepress_settings', $this->settings );
[838] Fix | Delete
}
[839] Fix | Delete
do_action( 'icl_save_settings', $settings );
[840] Fix | Delete
}
[841] Fix | Delete
[842] Fix | Delete
/**
[843] Fix | Delete
* @since 3.1
[844] Fix | Delete
*/
[845] Fix | Delete
function get_settings() {
[846] Fix | Delete
return $this->settings;
[847] Fix | Delete
}
[848] Fix | Delete
[849] Fix | Delete
function filter_get_setting( $value, $key ) {
[850] Fix | Delete
return $this->get_setting( $key, $value );
[851] Fix | Delete
}
[852] Fix | Delete
[853] Fix | Delete
/**
[854] Fix | Delete
* @param string $key
[855] Fix | Delete
* @param mixed|bool $default
[856] Fix | Delete
*
[857] Fix | Delete
* @since 3.1
[858] Fix | Delete
*
[859] Fix | Delete
* @return bool|mixed
[860] Fix | Delete
*/
[861] Fix | Delete
function get_setting( $key, $default = false ) {
[862] Fix | Delete
return wpml_get_setting_filter( $default, $key );
[863] Fix | Delete
}
[864] Fix | Delete
[865] Fix | Delete
function action_set_setting( $key, $value, $save_now ) {
[866] Fix | Delete
$this->set_setting( $key, $value, $save_now );
[867] Fix | Delete
}
[868] Fix | Delete
[869] Fix | Delete
/**
[870] Fix | Delete
* @param string $key
[871] Fix | Delete
* @param mixed $value
[872] Fix | Delete
* @param bool $save_now Immediately update the settings record in the DB
[873] Fix | Delete
*
[874] Fix | Delete
* @since 3.1
[875] Fix | Delete
*
[876] Fix | Delete
* @return bool Always True. If `$save_now === true`, it returns the result of `update_option`
[877] Fix | Delete
*/
[878] Fix | Delete
function set_setting( $key, $value, $save_now = false ) {
[879] Fix | Delete
return icl_set_setting( $key, $value, $save_now );
[880] Fix | Delete
}
[881] Fix | Delete
[882] Fix | Delete
function get_user_preferences() {
[883] Fix | Delete
if ( ! isset( $this->user_preferences ) || ! $this->user_preferences ) {
[884] Fix | Delete
$this->user_preferences = get_user_meta( $this->get_current_user()->ID, '_icl_preferences', true );
[885] Fix | Delete
}
[886] Fix | Delete
if ( ( is_array( $this->user_preferences ) && $this->user_preferences == array( 0 => false ) ) || ! $this->user_preferences ) {
[887] Fix | Delete
$this->user_preferences = array();
[888] Fix | Delete
}
[889] Fix | Delete
if ( ! is_array( $this->user_preferences ) ) {
[890] Fix | Delete
$this->user_preferences = (array) $this->user_preferences;
[891] Fix | Delete
}
[892] Fix | Delete
[893] Fix | Delete
return $this->user_preferences;
[894] Fix | Delete
}
[895] Fix | Delete
[896] Fix | Delete
function set_user_preferences( $value ) {
[897] Fix | Delete
$this->user_preferences = $value;
[898] Fix | Delete
}
[899] Fix | Delete
[900] Fix | Delete
function save_user_preferences() {
[901] Fix | Delete
update_user_meta( $this->get_current_user()->ID, '_icl_preferences', $this->user_preferences );
[902] Fix | Delete
}
[903] Fix | Delete
[904] Fix | Delete
/**
[905] Fix | Delete
* @deprecated Use \SitePress::get_setting instead
[906] Fix | Delete
*
[907] Fix | Delete
* @param $option_name
[908] Fix | Delete
*
[909] Fix | Delete
* @return mixed|null
[910] Fix | Delete
*/
[911] Fix | Delete
public function get_option( $option_name ) {
[912] Fix | Delete
return $this->get_setting( $option_name, null );
[913] Fix | Delete
}
[914] Fix | Delete
[915] Fix | Delete
function verify_settings() {
[916] Fix | Delete
[917] Fix | Delete
$verify_settings = new WPML_Verify_SitePress_Settings( $this->get_wp_api() );
[918] Fix | Delete
list( $this->settings, $update_settings ) = $verify_settings->verify( $this->settings );
[919] Fix | Delete
[920] Fix | Delete
if ( $update_settings ) {
[921] Fix | Delete
$this->save_settings();
[922] Fix | Delete
}
[923] Fix | Delete
}
[924] Fix | Delete
[925] Fix | Delete
/**
[926] Fix | Delete
* @param bool $refresh
[927] Fix | Delete
* @param bool $major_first
[928] Fix | Delete
* @param string $order_by
[929] Fix | Delete
*
[930] Fix | Delete
* @return array
[931] Fix | Delete
*/
[932] Fix | Delete
function get_active_languages( $refresh = false, $major_first = false, $order_by = 'english_name' ) {
[933] Fix | Delete
/** @var WPML_Request $wpml_request_handler */
[934] Fix | Delete
global $wpml_request_handler;
[935] Fix | Delete
[936] Fix | Delete
$in_language = defined( 'WP_ADMIN' ) && $this->admin_language ? $this->admin_language : null;
[937] Fix | Delete
$in_language = $in_language === null ? $this->get_current_language() : $in_language;
[938] Fix | Delete
$in_language = $in_language ? $in_language : $this->get_default_language();
[939] Fix | Delete
[940] Fix | Delete
$active_languages = $this->get_languages( $in_language, true, $refresh, $major_first, $order_by );
[941] Fix | Delete
$active_languages = isset( $active_languages[ $in_language ] ) ? $active_languages : $this->get_languages( $in_language, true, true, $major_first, $order_by );
[942] Fix | Delete
$active_languages = $active_languages ? $active_languages : array();
[943] Fix | Delete
$this->active_languages = $wpml_request_handler->show_hidden() ? $active_languages : array_diff_key( $active_languages, array_fill_keys( $this->get_setting( 'hidden_languages', array() ), 1 ) );
[944] Fix | Delete
[945] Fix | Delete
return $this->active_languages;
[946] Fix | Delete
}
[947] Fix | Delete
[948] Fix | Delete
/**
[949] Fix | Delete
* Returns an input array of languages, that are in the form of associative arrays,
[950] Fix | Delete
* ordered by the user-chosen language order
[951] Fix | Delete
*
[952] Fix | Delete
* @param array[] $languages
[953] Fix | Delete
*
[954] Fix | Delete
* @return array[]
[955] Fix | Delete
*/
[956] Fix | Delete
function order_languages( $languages ) {
[957] Fix | Delete
[958] Fix | Delete
$ordered_languages = array();
[959] Fix | Delete
if ( isset( $this->settings['languages_order'] ) && is_array( $this->settings['languages_order'] ) ) {
[960] Fix | Delete
foreach ( $this->settings['languages_order'] as $code ) {
[961] Fix | Delete
if ( isset( $languages[ $code ] ) ) {
[962] Fix | Delete
$ordered_languages[ $code ] = $languages[ $code ];
[963] Fix | Delete
unset( $languages[ $code ] );
[964] Fix | Delete
}
[965] Fix | Delete
}
[966] Fix | Delete
} else {
[967] Fix | Delete
// initial save
[968] Fix | Delete
$iclsettings['languages_order'] = array_keys( $languages );
[969] Fix | Delete
$this->save_settings( $iclsettings );
[970] Fix | Delete
}
[971] Fix | Delete
[972] Fix | Delete
if ( ! empty( $languages ) ) {
[973] Fix | Delete
foreach ( $languages as $code => $lang ) {
[974] Fix | Delete
$ordered_languages[ $code ] = $lang;
[975] Fix | Delete
}
[976] Fix | Delete
}
[977] Fix | Delete
[978] Fix | Delete
return $ordered_languages;
[979] Fix | Delete
}
[980] Fix | Delete
[981] Fix | Delete
/**
[982] Fix | Delete
* @param $lang_code
[983] Fix | Delete
* Checks if a given language code belongs to a currently active language.
[984] Fix | Delete
*
[985] Fix | Delete
* @return bool
[986] Fix | Delete
*/
[987] Fix | Delete
function is_active_language( $lang_code ) {
[988] Fix | Delete
$result = false;
[989] Fix | Delete
$active_languages = $this->get_active_languages();
[990] Fix | Delete
foreach ( $active_languages as $lang ) {
[991] Fix | Delete
if ( $lang_code == $lang['code'] ) {
[992] Fix | Delete
$result = true;
[993] Fix | Delete
break;
[994] Fix | Delete
}
[995] Fix | Delete
}
[996] Fix | Delete
[997] Fix | Delete
return $result;
[998] Fix | Delete
}
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function