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
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres...
File: ajax.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* @package wpml-core
[2] Fix | Delete
* @used-by Sitepress::ajax_setup
[3] Fix | Delete
*/
[4] Fix | Delete
global $wpdb, $sitepress, $sitepress_settings;
[5] Fix | Delete
/** @var SitePress $this */
[6] Fix | Delete
[7] Fix | Delete
$request = filter_input( INPUT_POST, 'icl_ajx_action' );
[8] Fix | Delete
$request = $request ? $request : filter_input( INPUT_GET, 'icl_ajx_action' );
[9] Fix | Delete
switch ( $request ) {
[10] Fix | Delete
case 'health_check':
[11] Fix | Delete
icl_set_setting( 'ajx_health_checked', true, true );
[12] Fix | Delete
exit;
[13] Fix | Delete
case 'get_browser_language':
[14] Fix | Delete
$http_accept_language = filter_var( $_SERVER[ 'HTTP_ACCEPT_LANGUAGE' ], FILTER_SANITIZE_SPECIAL_CHARS );
[15] Fix | Delete
$accepted_languages = explode( ';', $http_accept_language );
[16] Fix | Delete
$default_accepted_language = $accepted_languages[ 0 ];
[17] Fix | Delete
$default_accepted_language_codes = explode( ',', $default_accepted_language );
[18] Fix | Delete
wp_send_json_success($default_accepted_language_codes);
[19] Fix | Delete
}
[20] Fix | Delete
[21] Fix | Delete
$request = wpml_get_authenticated_action();
[22] Fix | Delete
[23] Fix | Delete
$iclsettings = $this->get_settings();
[24] Fix | Delete
$default_language = $this->get_default_language();
[25] Fix | Delete
[26] Fix | Delete
switch($request){
[27] Fix | Delete
case 'registration_form_submit':
[28] Fix | Delete
[29] Fix | Delete
$ret['error'] = '';
[30] Fix | Delete
$setup_instance = wpml_get_setup_instance();
[31] Fix | Delete
[32] Fix | Delete
if($_POST['button_action'] == 'later'){
[33] Fix | Delete
//success
[34] Fix | Delete
$ret['success'] = sprintf(__('WPML will work on your site, but you will not receive updates. WPML updates are essential for keeping your site running smoothly and secure. To receive automated updates, you need to complete the registration, in the %splugins admin%s page.', 'sitepress'),
[35] Fix | Delete
'<a href="' . admin_url('plugin-install.php?tab=commercial') . '">', '</a>');
[36] Fix | Delete
}elseif($_POST['button_action'] == 'finish'){
[37] Fix | Delete
$setup_instance->finish_installation();
[38] Fix | Delete
}else{
[39] Fix | Delete
if(empty($_POST['installer_site_key'])){
[40] Fix | Delete
$ret['error'] = __('Missing site key.');
[41] Fix | Delete
}else{
[42] Fix | Delete
$site_key = $_POST['installer_site_key'];
[43] Fix | Delete
if(class_exists('WP_Installer')){
[44] Fix | Delete
$args['repository_id'] = 'wpml';
[45] Fix | Delete
$args['nonce'] = wp_create_nonce('save_site_key_' . $args['repository_id']) ;
[46] Fix | Delete
$args['site_key'] = $site_key;
[47] Fix | Delete
$args['return'] = 1;
[48] Fix | Delete
$r = WP_Installer()->save_site_key($args);
[49] Fix | Delete
if(!empty($r['error'])){
[50] Fix | Delete
$ret['error'] = $r['error'];
[51] Fix | Delete
}else{
[52] Fix | Delete
//success
[53] Fix | Delete
$ret['success'] = __('Thank you for registering WPML on this site. You will receive automatic updates when new versions are available.', 'sitepress');
[54] Fix | Delete
}
[55] Fix | Delete
}
[56] Fix | Delete
$setup_instance->finish_installation($site_key);
[57] Fix | Delete
}
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
echo json_encode($ret);
[61] Fix | Delete
break;
[62] Fix | Delete
case 'icl_admin_language_options':
[63] Fix | Delete
$iclsettings['admin_default_language'] = $_POST['icl_admin_default_language'];
[64] Fix | Delete
$this->save_settings($iclsettings);
[65] Fix | Delete
echo 1;
[66] Fix | Delete
break;
[67] Fix | Delete
case 'icl_page_sync_options':
[68] Fix | Delete
$iclsettings['sync_page_ordering'] = @intval($_POST['icl_sync_page_ordering']);
[69] Fix | Delete
$iclsettings['sync_page_parent'] = @intval($_POST['icl_sync_page_parent']);
[70] Fix | Delete
$iclsettings['sync_page_template'] = @intval($_POST['icl_sync_page_template']);
[71] Fix | Delete
$iclsettings['sync_comment_status'] = @intval($_POST['icl_sync_comment_status']);
[72] Fix | Delete
$iclsettings['sync_ping_status'] = @intval($_POST['icl_sync_ping_status']);
[73] Fix | Delete
$iclsettings['sync_sticky_flag'] = @intval($_POST['icl_sync_sticky_flag']);
[74] Fix | Delete
$iclsettings['sync_password'] = @intval($_POST['icl_sync_password']);
[75] Fix | Delete
$iclsettings['sync_private_flag'] = @intval($_POST['icl_sync_private_flag']);
[76] Fix | Delete
$iclsettings['sync_post_format'] = @intval($_POST['icl_sync_post_format']);
[77] Fix | Delete
$iclsettings['sync_delete'] = @intval($_POST['icl_sync_delete']);
[78] Fix | Delete
$iclsettings['sync_delete_tax'] = @intval($_POST['icl_sync_delete_tax']);
[79] Fix | Delete
$iclsettings['sync_post_taxonomies'] = @intval($_POST['icl_sync_post_taxonomies']);
[80] Fix | Delete
$iclsettings['sync_post_date'] = @intval($_POST['icl_sync_post_date']);
[81] Fix | Delete
$iclsettings['sync_comments_on_duplicates'] = @intval($_POST['icl_sync_comments_on_duplicates']);
[82] Fix | Delete
$this->save_settings($iclsettings);
[83] Fix | Delete
[84] Fix | Delete
$wpml_page_builder_options = new WPML_Page_Builder_Settings();
[85] Fix | Delete
[86] Fix | Delete
if ( array_key_exists( 'wpml_pb_translate_raw_html', $_POST ) ) {
[87] Fix | Delete
$wpml_page_builder_options->set_raw_html_translatable(
[88] Fix | Delete
filter_var($_POST['wpml_pb_translate_raw_html'], FILTER_VALIDATE_INT)
[89] Fix | Delete
);
[90] Fix | Delete
} else {
[91] Fix | Delete
$wpml_page_builder_options->set_raw_html_translatable( 0 );
[92] Fix | Delete
}
[93] Fix | Delete
[94] Fix | Delete
$wpml_page_builder_options->save();
[95] Fix | Delete
[96] Fix | Delete
echo 1;
[97] Fix | Delete
break;
[98] Fix | Delete
case 'language_domains':
[99] Fix | Delete
$language_domains_helper = new WPML_Lang_Domains_Box( $this );
[100] Fix | Delete
echo $language_domains_helper->render();
[101] Fix | Delete
break;
[102] Fix | Delete
case 'dismiss_help':
[103] Fix | Delete
icl_set_setting('dont_show_help_admin_notice', true);
[104] Fix | Delete
icl_save_settings();
[105] Fix | Delete
break;
[106] Fix | Delete
case 'dismiss_page_estimate_hint':
[107] Fix | Delete
icl_set_setting('dismiss_page_estimate_hint', !icl_get_setting('dismiss_page_estimate_hint'));
[108] Fix | Delete
icl_save_settings();
[109] Fix | Delete
break;
[110] Fix | Delete
case 'dismiss_upgrade_notice':
[111] Fix | Delete
icl_set_setting('hide_upgrade_notice', implode('.', array_slice(explode('.', ICL_SITEPRESS_VERSION), 0, 3)));
[112] Fix | Delete
icl_save_settings();
[113] Fix | Delete
break;
[114] Fix | Delete
case 'setup_got_to_step1':
[115] Fix | Delete
$setup_instance = wpml_get_setup_instance();
[116] Fix | Delete
$setup_instance->go_to_setup1();
[117] Fix | Delete
break;
[118] Fix | Delete
case 'setup_got_to_step2':
[119] Fix | Delete
icl_set_setting('setup_wizard_step', 2);
[120] Fix | Delete
icl_save_settings();
[121] Fix | Delete
break;
[122] Fix | Delete
case 'setup_got_to_step3':
[123] Fix | Delete
icl_set_setting('setup_wizard_step', 3);
[124] Fix | Delete
icl_save_settings();
[125] Fix | Delete
break;
[126] Fix | Delete
case 'setup_got_to_step5':
[127] Fix | Delete
icl_set_setting('setup_wizard_step', 5);
[128] Fix | Delete
icl_save_settings();
[129] Fix | Delete
break;
[130] Fix | Delete
case 'toggle_show_translations':
[131] Fix | Delete
icl_set_setting('show_translations_flag', intval(!icl_get_setting('show_translations_flag', false)));
[132] Fix | Delete
icl_save_settings();
[133] Fix | Delete
break;
[134] Fix | Delete
case 'icl_messages':
[135] Fix | Delete
//TODO: handle with Translation Proxy
[136] Fix | Delete
if ( ! icl_get_setting( 'icl_disable_reminders' ) ) {
[137] Fix | Delete
break;
[138] Fix | Delete
}
[139] Fix | Delete
exit;
[140] Fix | Delete
case 'icl_help_links':
[141] Fix | Delete
if ( isset( $iclq ) && $iclq ) {
[142] Fix | Delete
$links = $iclq->get_help_links();
[143] Fix | Delete
$lang = icl_get_setting( 'admin_default_language' );
[144] Fix | Delete
if (!isset($links['resources'][$lang])) {
[145] Fix | Delete
$lang = 'en';
[146] Fix | Delete
}
[147] Fix | Delete
[148] Fix | Delete
if (isset($links['resources'][$lang])) {
[149] Fix | Delete
$output = '<ul>';
[150] Fix | Delete
foreach( $links['resources'][$lang]['resource'] as $resource) {
[151] Fix | Delete
if (isset($resource['attr'])) {
[152] Fix | Delete
$title = $resource['attr']['title'];
[153] Fix | Delete
$url = $resource['attr']['url'];
[154] Fix | Delete
$icon = $resource['attr']['icon'];
[155] Fix | Delete
$icon_width = $resource['attr']['icon_width'];
[156] Fix | Delete
$icon_height = $resource['attr']['icon_height'];
[157] Fix | Delete
} else {
[158] Fix | Delete
$title = $resource['title'];
[159] Fix | Delete
$url = $resource['url'];
[160] Fix | Delete
$icon = $resource['icon'];
[161] Fix | Delete
$icon_width = $resource['icon_width'];
[162] Fix | Delete
$icon_height = $resource['icon_height'];
[163] Fix | Delete
}
[164] Fix | Delete
$output .= '<li>';
[165] Fix | Delete
if ($icon) {
[166] Fix | Delete
$output .= '<img style="vertical-align: bottom; padding-right: 5px;" src="' . $icon . '"';
[167] Fix | Delete
if ($icon_width) {
[168] Fix | Delete
$output .= ' width="' . $icon_width . '"';
[169] Fix | Delete
}
[170] Fix | Delete
if ($icon_height) {
[171] Fix | Delete
$output .= ' height="' . $icon_height . '"';
[172] Fix | Delete
}
[173] Fix | Delete
$output .= '>';
[174] Fix | Delete
}
[175] Fix | Delete
$output .= '<a href="' . $url . '">' . $title . '</a></li>';
[176] Fix | Delete
[177] Fix | Delete
}
[178] Fix | Delete
$output .= '</ul>';
[179] Fix | Delete
echo '1|' . $output;
[180] Fix | Delete
} else {
[181] Fix | Delete
echo '0|';
[182] Fix | Delete
}
[183] Fix | Delete
}
[184] Fix | Delete
break;
[185] Fix | Delete
case 'icl_show_sidebar':
[186] Fix | Delete
icl_set_setting('icl_sidebar_minimized', $_POST['state']=='hide'?1:0);
[187] Fix | Delete
icl_save_settings();
[188] Fix | Delete
break;
[189] Fix | Delete
case 'icl_promote_form':
[190] Fix | Delete
icl_set_setting('promote_wpml', @intval($_POST['icl_promote']));
[191] Fix | Delete
icl_save_settings();
[192] Fix | Delete
echo '1|';
[193] Fix | Delete
break;
[194] Fix | Delete
case 'save_translator_note':
[195] Fix | Delete
update_post_meta($_POST['post_id'], '_icl_translator_note', $_POST['note']);
[196] Fix | Delete
break;
[197] Fix | Delete
case 'icl_st_track_strings':
[198] Fix | Delete
foreach($_POST['icl_st'] as $k=>$v){
[199] Fix | Delete
$iclsettings['st'][$k] = $v;
[200] Fix | Delete
}
[201] Fix | Delete
if ( array_key_exists( 'st', $iclsettings ) && array_key_exists( 'hl_color', $iclsettings['st'] ) && ! wpml_is_valid_hex_color( $iclsettings['st']['hl_color'] ) ) {
[202] Fix | Delete
$iclsettings['st']['hl_color'] = '#FFFF00';
[203] Fix | Delete
}
[204] Fix | Delete
if(isset($iclsettings)) {
[205] Fix | Delete
$this->save_settings($iclsettings);
[206] Fix | Delete
}
[207] Fix | Delete
[208] Fix | Delete
do_action( 'wpml_st_strings_tracking_option_saved', (int) $_POST['icl_st']['track_strings'] );
[209] Fix | Delete
[210] Fix | Delete
echo 1;
[211] Fix | Delete
break;
[212] Fix | Delete
case 'icl_st_more_options':
[213] Fix | Delete
$iclsettings['st']['translated-users'] = !empty($_POST['users']) ? array_keys($_POST['users']) : array();
[214] Fix | Delete
$this->save_settings($iclsettings);
[215] Fix | Delete
if(!empty($iclsettings['st']['translated-users'])){
[216] Fix | Delete
$sitepress_settings['st']['translated-users'] = $iclsettings['st']['translated-users'];
[217] Fix | Delete
icl_st_register_user_strings_all();
[218] Fix | Delete
}
[219] Fix | Delete
echo 1;
[220] Fix | Delete
break;
[221] Fix | Delete
case 'icl_hide_languages':
[222] Fix | Delete
$iclsettings['hidden_languages'] = empty($_POST['icl_hidden_languages']) ? array() : $_POST['icl_hidden_languages'];
[223] Fix | Delete
$this->set_setting('hidden_languages', array()); //reset current value
[224] Fix | Delete
$active_languages = $this->get_active_languages();
[225] Fix | Delete
if(!empty($iclsettings['hidden_languages'])){
[226] Fix | Delete
if(1 == count($iclsettings['hidden_languages'])){
[227] Fix | Delete
$out = sprintf(__('%s is currently hidden to visitors.', 'sitepress'),
[228] Fix | Delete
$active_languages[$iclsettings['hidden_languages'][0]]['display_name']);
[229] Fix | Delete
}else{
[230] Fix | Delete
foreach($iclsettings['hidden_languages'] as $l){
[231] Fix | Delete
$_hlngs[] = $active_languages[$l]['display_name'];
[232] Fix | Delete
}
[233] Fix | Delete
$hlangs = join(', ', $_hlngs);
[234] Fix | Delete
$out = sprintf(__('%s are currently hidden to visitors.', 'sitepress'), $hlangs);
[235] Fix | Delete
}
[236] Fix | Delete
$out .= ' ' . sprintf(__('You can enable its/their display for yourself, in your <a href="%s">profile page</a>.', 'sitepress'),
[237] Fix | Delete
'profile.php#wpml');
[238] Fix | Delete
} else {
[239] Fix | Delete
$out = __('All languages are currently displayed.', 'sitepress');
[240] Fix | Delete
}
[241] Fix | Delete
$this->save_settings($iclsettings);
[242] Fix | Delete
echo '1|'.$out;
[243] Fix | Delete
break;
[244] Fix | Delete
case 'icl_adjust_ids':
[245] Fix | Delete
$iclsettings['auto_adjust_ids'] = @intval($_POST['icl_adjust_ids']);
[246] Fix | Delete
$this->save_settings($iclsettings);
[247] Fix | Delete
echo '1|';
[248] Fix | Delete
break;
[249] Fix | Delete
case 'icl_automatic_redirect':
[250] Fix | Delete
if (!isset($_POST['icl_remember_language']) || $_POST['icl_remember_language'] < 24) {
[251] Fix | Delete
$_POST['icl_remember_language'] = 24;
[252] Fix | Delete
}
[253] Fix | Delete
$iclsettings['automatic_redirect'] = @intval($_POST['icl_automatic_redirect']);
[254] Fix | Delete
$iclsettings['remember_language'] = @intval($_POST['icl_remember_language']);
[255] Fix | Delete
$this->save_settings($iclsettings);
[256] Fix | Delete
echo '1|';
[257] Fix | Delete
break;
[258] Fix | Delete
case 'icl_troubleshooting_more_options':
[259] Fix | Delete
$iclsettings['troubleshooting_options'] = $_POST['troubleshooting_options'];
[260] Fix | Delete
$this->save_settings($iclsettings);
[261] Fix | Delete
echo '1|';
[262] Fix | Delete
break;
[263] Fix | Delete
case 'reset_languages':
[264] Fix | Delete
$setup_instance = wpml_get_setup_instance();
[265] Fix | Delete
$setup_instance->reset_language_data();
[266] Fix | Delete
[267] Fix | Delete
$wpml_localization = new WPML_Download_Localization( $sitepress->get_active_languages(), $sitepress->get_default_language() );
[268] Fix | Delete
$wpml_localization->download_language_packs();
[269] Fix | Delete
$wpml_languages_notices = new WPML_Languages_Notices( wpml_get_admin_notices() );
[270] Fix | Delete
$wpml_languages_notices->missing_languages( $wpml_localization->get_not_founds() );
[271] Fix | Delete
break;
[272] Fix | Delete
case 'icl_support_update_ticket':
[273] Fix | Delete
if (isset($_POST['ticket'])) {
[274] Fix | Delete
$temp = str_replace('icl_support_ticket_', '', $_POST['ticket']);
[275] Fix | Delete
$temp = explode('_', $temp);
[276] Fix | Delete
$id = (int)$temp[0];
[277] Fix | Delete
$num = (int)$temp[1];
[278] Fix | Delete
if ($id && $num) {
[279] Fix | Delete
if (isset($iclsettings['icl_support']['tickets'][$id])) {
[280] Fix | Delete
$iclsettings['icl_support']['tickets'][$id]['messages'] = $num;
[281] Fix | Delete
$this->save_settings($iclsettings);
[282] Fix | Delete
}
[283] Fix | Delete
}
[284] Fix | Delete
}
[285] Fix | Delete
break;
[286] Fix | Delete
case 'icl_custom_tax_sync_options':
[287] Fix | Delete
$new_options = ! empty( $_POST['icl_sync_tax'] ) ? $_POST['icl_sync_tax'] : array();
[288] Fix | Delete
$unlocked_options = ! empty( $_POST['icl_sync_tax_unlocked'] ) ? $_POST['icl_sync_tax_unlocked'] : array();
[289] Fix | Delete
/** @var WPML_Settings_Helper $settings_helper */
[290] Fix | Delete
$settings_helper = wpml_load_settings_helper();
[291] Fix | Delete
$settings_helper->update_taxonomy_unlocked_settings( $unlocked_options );
[292] Fix | Delete
$settings_helper->update_taxonomy_sync_settings( $new_options );
[293] Fix | Delete
echo '1|';
[294] Fix | Delete
break;
[295] Fix | Delete
case 'icl_custom_posts_sync_options':
[296] Fix | Delete
$new_options = ! empty( $_POST['icl_sync_custom_posts'] ) ? $_POST['icl_sync_custom_posts'] : array();
[297] Fix | Delete
$unlocked_options = ! empty( $_POST['icl_sync_custom_posts_unlocked'] ) ? $_POST['icl_sync_custom_posts_unlocked'] : array();
[298] Fix | Delete
/** @var WPML_Settings_Helper $settings_helper */
[299] Fix | Delete
$settings_helper = wpml_load_settings_helper();
[300] Fix | Delete
$settings_helper->update_cpt_unlocked_settings( $unlocked_options );
[301] Fix | Delete
$settings_helper->update_cpt_sync_settings( $new_options );
[302] Fix | Delete
echo '1|';
[303] Fix | Delete
break;
[304] Fix | Delete
case 'copy_from_original':
[305] Fix | Delete
/*
[306] Fix | Delete
* apply filtering as to add further elements
[307] Fix | Delete
* filters will have to like as such
[308] Fix | Delete
* add_filter('wpml_copy_from_original_fields', 'my_copy_from_original_fields');
[309] Fix | Delete
*
[310] Fix | Delete
* function my_copy_from_original_fields( $elements ) {
[311] Fix | Delete
* $custom_field = 'editor1';
[312] Fix | Delete
* $elements[ 'customfields' ][ $custom_fields ] = array(
[313] Fix | Delete
* 'editor_name' => 'custom_editor_1',
[314] Fix | Delete
* 'editor_type' => 'editor',
[315] Fix | Delete
* 'value' => 'test'
[316] Fix | Delete
* );
[317] Fix | Delete
*
[318] Fix | Delete
* $custom_field = 'editor2';
[319] Fix | Delete
* $elements[ 'customfields' ][ $custom_fields ] = array(
[320] Fix | Delete
* 'editor_name' => 'textbox1',
[321] Fix | Delete
* 'editor_type' => 'text',
[322] Fix | Delete
* 'value' => 'testtext'
[323] Fix | Delete
* );
[324] Fix | Delete
*
[325] Fix | Delete
* return $elements;
[326] Fix | Delete
* }
[327] Fix | Delete
* This filter would result in custom_editor_1 being populated with the value "test"
[328] Fix | Delete
* and the textfield with id #textbox1 to be populated with "testtext".
[329] Fix | Delete
* editor type is always either text when populating general fields or editor when populating
[330] Fix | Delete
* a wp editor. The editor id can be either judged from the arguments used in the wp_editor() call
[331] Fix | Delete
* or from looking at the tinyMCE.Editors object that the custom post type's editor sends to the browser.
[332] Fix | Delete
*/
[333] Fix | Delete
$content_type = filter_input( INPUT_POST, 'content_type' );
[334] Fix | Delete
$excerpt_type = filter_input( INPUT_POST, 'excerpt_type' );
[335] Fix | Delete
$trid = filter_input( INPUT_POST, 'trid' );
[336] Fix | Delete
$lang = filter_input( INPUT_POST, 'lang' );
[337] Fix | Delete
echo wp_json_encode( WPML_Post_Edit_Ajax::copy_from_original_fields( $content_type, $excerpt_type, $trid, $lang ) );
[338] Fix | Delete
break;
[339] Fix | Delete
case 'save_user_preferences':
[340] Fix | Delete
$user_preferences = $this->get_user_preferences();
[341] Fix | Delete
$this->set_user_preferences( array_merge_recursive( $user_preferences, $_POST[ 'user_preferences' ] ) );
[342] Fix | Delete
$this->save_user_preferences();
[343] Fix | Delete
break;
[344] Fix | Delete
case 'wpml_cf_translation_preferences':
[345] Fix | Delete
if ( empty( $_POST[ WPML_POST_META_SETTING_INDEX_SINGULAR ] ) ) {
[346] Fix | Delete
echo '<span style="color:#FF0000;">'
[347] Fix | Delete
. __( 'Error: No custom field', 'sitepress' ) . '</span>';
[348] Fix | Delete
die();
[349] Fix | Delete
}
[350] Fix | Delete
$_POST[WPML_POST_META_SETTING_INDEX_SINGULAR] = @strval( $_POST[ WPML_POST_META_SETTING_INDEX_SINGULAR ] );
[351] Fix | Delete
if ( ! isset( $_POST['translate_action'] ) ) {
[352] Fix | Delete
echo '<span style="color:#FF0000;">'
[353] Fix | Delete
. __( 'Error: Please provide translation action', 'sitepress' ) . '</span>';
[354] Fix | Delete
die();
[355] Fix | Delete
}
[356] Fix | Delete
$_POST['translate_action'] = @intval( $_POST['translate_action'] );
[357] Fix | Delete
if ( defined( 'WPML_TM_VERSION' ) ) {
[358] Fix | Delete
global $iclTranslationManagement;
[359] Fix | Delete
if ( ! empty( $iclTranslationManagement ) ) {
[360] Fix | Delete
$iclTranslationManagement->settings[ WPML_POST_META_SETTING_INDEX_PLURAL ][ $_POST[ WPML_POST_META_SETTING_INDEX_SINGULAR ] ] = $_POST['translate_action'];
[361] Fix | Delete
$iclTranslationManagement->save_settings();
[362] Fix | Delete
echo '<strong><em>' . __( 'Settings updated', 'sitepress' ) . '</em></strong>';
[363] Fix | Delete
} else {
[364] Fix | Delete
echo '<span style="color:#FF0000;">'
[365] Fix | Delete
. __( 'Error: WPML Translation Management plugin not initiated', 'sitepress' )
[366] Fix | Delete
. '</span>';
[367] Fix | Delete
}
[368] Fix | Delete
} else {
[369] Fix | Delete
echo '<span style="color:#FF0000;">'
[370] Fix | Delete
. __( 'Error: Please activate WPML Translation Management plugin', 'sitepress' )
[371] Fix | Delete
. '</span>';
[372] Fix | Delete
}
[373] Fix | Delete
break;
[374] Fix | Delete
case 'icl_seo_options':
[375] Fix | Delete
$seo = $sitepress->get_setting( 'seo', array() );
[376] Fix | Delete
[377] Fix | Delete
$seo['head_langs'] = isset( $_POST['icl_seo_head_langs'] ) ? (int) $_POST['icl_seo_head_langs'] : 0;
[378] Fix | Delete
$seo['canonicalization_duplicates'] = isset( $_POST['icl_seo_canonicalization_duplicates'] ) ? (int) $_POST['icl_seo_canonicalization_duplicates'] : 0;
[379] Fix | Delete
$seo['head_langs_priority'] = isset( $_POST['wpml_seo_head_langs_priority'] ) ? (int) $_POST['wpml_seo_head_langs_priority'] : 1;
[380] Fix | Delete
[381] Fix | Delete
$sitepress->set_setting( 'seo', $seo, true );
[382] Fix | Delete
echo '1|';
[383] Fix | Delete
break;
[384] Fix | Delete
case 'dismiss_object_cache_warning':
[385] Fix | Delete
$iclsettings['dismiss_object_cache_warning'] = true;
[386] Fix | Delete
$this->save_settings($iclsettings);
[387] Fix | Delete
echo '1|';
[388] Fix | Delete
break;
[389] Fix | Delete
case 'update_option':
[390] Fix | Delete
$iclsettings[$_REQUEST['option']] = $_REQUEST['value'];
[391] Fix | Delete
$this->save_settings($iclsettings);
[392] Fix | Delete
break;
[393] Fix | Delete
case 'connect_translations':
[394] Fix | Delete
$new_trid = $_POST['new_trid'];
[395] Fix | Delete
$post_type = $_POST['post_type'];
[396] Fix | Delete
$post_id = $_POST['post_id'];
[397] Fix | Delete
$set_as_source = $_POST['set_as_source'];
[398] Fix | Delete
$element_type = 'post_' . $post_type;
[399] Fix | Delete
[400] Fix | Delete
$language_details = $sitepress->get_element_language_details( $post_id, $element_type );
[401] Fix | Delete
[402] Fix | Delete
if ( $set_as_source ) {
[403] Fix | Delete
[404] Fix | Delete
$wpdb->update(
[405] Fix | Delete
$wpdb->prefix . 'icl_translations',
[406] Fix | Delete
array( 'source_language_code' => $language_details->language_code ),
[407] Fix | Delete
array( 'trid' => $new_trid, 'element_type' => $element_type ),
[408] Fix | Delete
array( '%s' ),
[409] Fix | Delete
array( '%d', '%s' )
[410] Fix | Delete
);
[411] Fix | Delete
[412] Fix | Delete
$wpdb->update(
[413] Fix | Delete
$wpdb->prefix . 'icl_translations',
[414] Fix | Delete
array( 'source_language_code' => null, 'trid' => $new_trid ),
[415] Fix | Delete
array( 'element_id' => $post_id, 'element_type' => $element_type ),
[416] Fix | Delete
array( '%s', '%d' ),
[417] Fix | Delete
array( '%d', '%s' )
[418] Fix | Delete
);
[419] Fix | Delete
[420] Fix | Delete
do_action(
[421] Fix | Delete
'wpml_translation_update',
[422] Fix | Delete
array(
[423] Fix | Delete
'type' => 'update',
[424] Fix | Delete
'trid' => $new_trid,
[425] Fix | Delete
'element_type' => $element_type,
[426] Fix | Delete
'context' => 'post'
[427] Fix | Delete
)
[428] Fix | Delete
);
[429] Fix | Delete
[430] Fix | Delete
} else {
[431] Fix | Delete
$original_element_language = $sitepress->get_default_language();
[432] Fix | Delete
$trid_elements = $sitepress->get_element_translations( $new_trid, $element_type );
[433] Fix | Delete
if($trid_elements) {
[434] Fix | Delete
foreach ( $trid_elements as $trid_element ) {
[435] Fix | Delete
if ( $trid_element->original ) {
[436] Fix | Delete
$original_element_language = $trid_element->language_code;
[437] Fix | Delete
break;
[438] Fix | Delete
}
[439] Fix | Delete
}
[440] Fix | Delete
}
[441] Fix | Delete
[442] Fix | Delete
$wpdb->update(
[443] Fix | Delete
$wpdb->prefix . 'icl_translations',
[444] Fix | Delete
array( 'source_language_code' => $original_element_language, 'trid' => $new_trid ),
[445] Fix | Delete
array( 'element_id' => $post_id, 'element_type' => $element_type ),
[446] Fix | Delete
array( '%s', '%d' ),
[447] Fix | Delete
array( '%d', '%s' )
[448] Fix | Delete
);
[449] Fix | Delete
[450] Fix | Delete
[451] Fix | Delete
do_action(
[452] Fix | Delete
'wpml_translation_update',
[453] Fix | Delete
array(
[454] Fix | Delete
'type' => 'update',
[455] Fix | Delete
'trid' => $new_trid,
[456] Fix | Delete
'element_id' => $post_id,
[457] Fix | Delete
'element_type' => $element_type,
[458] Fix | Delete
'context' => 'post'
[459] Fix | Delete
)
[460] Fix | Delete
);
[461] Fix | Delete
[462] Fix | Delete
}
[463] Fix | Delete
echo wp_json_encode(true);
[464] Fix | Delete
break;
[465] Fix | Delete
case 'get_posts_from_trid':
[466] Fix | Delete
$trid = $_POST['trid'];
[467] Fix | Delete
$post_type = $_POST['post_type'];
[468] Fix | Delete
[469] Fix | Delete
$translations = $sitepress->get_element_translations($trid, 'post_' . $post_type);
[470] Fix | Delete
[471] Fix | Delete
$results = array();
[472] Fix | Delete
foreach($translations as $language_code => $translation) {
[473] Fix | Delete
$post = get_post($translation->element_id);
[474] Fix | Delete
$title = $post->post_title ? $post->post_title : strip_shortcodes(wp_trim_words( $post->post_content, 50 ));
[475] Fix | Delete
$source_language_code = $translation->source_language_code;
[476] Fix | Delete
$results[] = (object) array('language' => $language_code, 'title' => $title, 'source_language' => $source_language_code);
[477] Fix | Delete
}
[478] Fix | Delete
echo wp_json_encode($results);
[479] Fix | Delete
break;
[480] Fix | Delete
case 'get_orphan_posts':
[481] Fix | Delete
$trid = $_POST['trid'];
[482] Fix | Delete
$post_type = $_POST['post_type'];
[483] Fix | Delete
$source_language = $_POST['source_language'];
[484] Fix | Delete
$results = $sitepress->get_orphan_translations($trid, $post_type, $source_language);
[485] Fix | Delete
[486] Fix | Delete
echo wp_json_encode($results);
[487] Fix | Delete
[488] Fix | Delete
break;
[489] Fix | Delete
default:
[490] Fix | Delete
if(function_exists('ajax_' . $request)) {
[491] Fix | Delete
$function_name = 'ajax_' . $request;
[492] Fix | Delete
$function_name();
[493] Fix | Delete
} else {
[494] Fix | Delete
do_action('icl_ajx_custom_call', $request, $_REQUEST);
[495] Fix | Delete
}
[496] Fix | Delete
}
[497] Fix | Delete
exit;
[498] Fix | Delete
[499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function