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/clone/wp-conte.../plugins/wordpres.../inc
File: class-upgrade.php
* @return void
[1000] Fix | Delete
*/
[1001] Fix | Delete
private function upgrade_189() {
[1002] Fix | Delete
// Make old users not get the Installation Success page after upgrading.
[1003] Fix | Delete
WPSEO_Options::set( 'should_redirect_after_install_free', false );
[1004] Fix | Delete
// We're adding a hardcoded time here, so that in the future we can be able to identify whether the user did see the Installation Success page or not.
[1005] Fix | Delete
// If they did, they wouldn't have this hardcoded value in that option, but rather (roughly) the timestamp of the moment they saw it.
[1006] Fix | Delete
WPSEO_Options::set( 'activation_redirect_timestamp_free', 1652258756 );
[1007] Fix | Delete
[1008] Fix | Delete
// Transfer the Social URLs.
[1009] Fix | Delete
$other = [];
[1010] Fix | Delete
$other[] = WPSEO_Options::get( 'instagram_url' );
[1011] Fix | Delete
$other[] = WPSEO_Options::get( 'linkedin_url' );
[1012] Fix | Delete
$other[] = WPSEO_Options::get( 'myspace_url' );
[1013] Fix | Delete
$other[] = WPSEO_Options::get( 'pinterest_url' );
[1014] Fix | Delete
$other[] = WPSEO_Options::get( 'youtube_url' );
[1015] Fix | Delete
$other[] = WPSEO_Options::get( 'wikipedia_url' );
[1016] Fix | Delete
[1017] Fix | Delete
WPSEO_Options::set( 'other_social_urls', array_values( array_unique( array_filter( $other ) ) ) );
[1018] Fix | Delete
[1019] Fix | Delete
// Transfer the progress of the old Configuration Workout.
[1020] Fix | Delete
$workout_data = WPSEO_Options::get( 'workouts_data' );
[1021] Fix | Delete
$old_conf_progress = ( $workout_data['configuration']['finishedSteps'] ?? [] );
[1022] Fix | Delete
[1023] Fix | Delete
if ( in_array( 'optimizeSeoData', $old_conf_progress, true ) && in_array( 'siteRepresentation', $old_conf_progress, true ) ) {
[1024] Fix | Delete
// If completed ‘SEO optimization’ and ‘Site representation’ step, we assume the workout was completed.
[1025] Fix | Delete
$configuration_finished_steps = [
[1026] Fix | Delete
'siteRepresentation',
[1027] Fix | Delete
'socialProfiles',
[1028] Fix | Delete
'personalPreferences',
[1029] Fix | Delete
];
[1030] Fix | Delete
WPSEO_Options::set( 'configuration_finished_steps', $configuration_finished_steps );
[1031] Fix | Delete
}
[1032] Fix | Delete
}
[1033] Fix | Delete
[1034] Fix | Delete
/**
[1035] Fix | Delete
* Performs the 19.1 upgrade routine.
[1036] Fix | Delete
*
[1037] Fix | Delete
* @return void
[1038] Fix | Delete
*/
[1039] Fix | Delete
private function upgrade_191() {
[1040] Fix | Delete
if ( is_multisite() ) {
[1041] Fix | Delete
WPSEO_Options::set( 'allow_remove_feed_post_comments', true );
[1042] Fix | Delete
}
[1043] Fix | Delete
}
[1044] Fix | Delete
[1045] Fix | Delete
/**
[1046] Fix | Delete
* Performs the 19.3 upgrade routine.
[1047] Fix | Delete
*
[1048] Fix | Delete
* @return void
[1049] Fix | Delete
*/
[1050] Fix | Delete
private function upgrade_193() {
[1051] Fix | Delete
if ( empty( get_option( 'wpseo_premium', [] ) ) ) {
[1052] Fix | Delete
WPSEO_Options::set( 'enable_index_now', true );
[1053] Fix | Delete
WPSEO_Options::set( 'enable_link_suggestions', true );
[1054] Fix | Delete
}
[1055] Fix | Delete
}
[1056] Fix | Delete
[1057] Fix | Delete
/**
[1058] Fix | Delete
* Performs the 19.6 upgrade routine.
[1059] Fix | Delete
*
[1060] Fix | Delete
* @return void
[1061] Fix | Delete
*/
[1062] Fix | Delete
private function upgrade_196() {
[1063] Fix | Delete
WPSEO_Options::set( 'ryte_indexability', false );
[1064] Fix | Delete
WPSEO_Options::set( 'allow_ryte_indexability', false );
[1065] Fix | Delete
wp_clear_scheduled_hook( 'wpseo_ryte_fetch' );
[1066] Fix | Delete
}
[1067] Fix | Delete
[1068] Fix | Delete
/**
[1069] Fix | Delete
* Performs the 19.11 upgrade routine.
[1070] Fix | Delete
*
[1071] Fix | Delete
* @return void
[1072] Fix | Delete
*/
[1073] Fix | Delete
private function upgrade_1911() {
[1074] Fix | Delete
add_action( 'shutdown', [ $this, 'remove_indexable_rows_for_non_public_post_types' ] );
[1075] Fix | Delete
add_action( 'shutdown', [ $this, 'remove_indexable_rows_for_non_public_taxonomies' ] );
[1076] Fix | Delete
$this->deduplicate_unindexed_indexable_rows();
[1077] Fix | Delete
$this->remove_indexable_rows_for_disabled_authors_archive();
[1078] Fix | Delete
if ( ! wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) {
[1079] Fix | Delete
wp_schedule_single_event( ( time() + ( MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK );
[1080] Fix | Delete
}
[1081] Fix | Delete
}
[1082] Fix | Delete
[1083] Fix | Delete
/**
[1084] Fix | Delete
* Performs the 20.2 upgrade routine.
[1085] Fix | Delete
*
[1086] Fix | Delete
* @return void
[1087] Fix | Delete
*/
[1088] Fix | Delete
private function upgrade_202() {
[1089] Fix | Delete
if ( WPSEO_Options::get( 'disable-attachment', true ) ) {
[1090] Fix | Delete
$attachment_cleanup_helper = YoastSEO()->helpers->attachment_cleanup;
[1091] Fix | Delete
[1092] Fix | Delete
$attachment_cleanup_helper->remove_attachment_indexables( true );
[1093] Fix | Delete
$attachment_cleanup_helper->clean_attachment_links_from_target_indexable_ids( true );
[1094] Fix | Delete
}
[1095] Fix | Delete
[1096] Fix | Delete
$this->clean_unindexed_indexable_rows_with_no_object_id();
[1097] Fix | Delete
[1098] Fix | Delete
if ( ! wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) {
[1099] Fix | Delete
// This schedules the cleanup routine cron again, since in combination of premium cleans up the prominent words table. We also want to cleanup possible orphaned hierarchies from the above cleanups.
[1100] Fix | Delete
wp_schedule_single_event( ( time() + ( MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK );
[1101] Fix | Delete
}
[1102] Fix | Delete
}
[1103] Fix | Delete
[1104] Fix | Delete
/**
[1105] Fix | Delete
* Performs the 20.5 upgrade routine.
[1106] Fix | Delete
*
[1107] Fix | Delete
* @return void
[1108] Fix | Delete
*/
[1109] Fix | Delete
private function upgrade_205() {
[1110] Fix | Delete
if ( ! wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) {
[1111] Fix | Delete
wp_schedule_single_event( ( time() + ( MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK );
[1112] Fix | Delete
}
[1113] Fix | Delete
}
[1114] Fix | Delete
[1115] Fix | Delete
/**
[1116] Fix | Delete
* Performs the 20.7 upgrade routine.
[1117] Fix | Delete
* Removes the metadata related to the settings page introduction modal for all the users.
[1118] Fix | Delete
* Also, schedules another cleanup scheduled action.
[1119] Fix | Delete
*
[1120] Fix | Delete
* @return void
[1121] Fix | Delete
*/
[1122] Fix | Delete
private function upgrade_207() {
[1123] Fix | Delete
add_action( 'shutdown', [ $this, 'delete_user_introduction_meta' ] );
[1124] Fix | Delete
}
[1125] Fix | Delete
[1126] Fix | Delete
/**
[1127] Fix | Delete
* Performs the 20.8 upgrade routine.
[1128] Fix | Delete
* Schedules another cleanup scheduled action.
[1129] Fix | Delete
*
[1130] Fix | Delete
* @return void
[1131] Fix | Delete
*/
[1132] Fix | Delete
private function upgrade_208() {
[1133] Fix | Delete
if ( ! wp_next_scheduled( Cleanup_Integration::START_HOOK ) ) {
[1134] Fix | Delete
wp_schedule_single_event( ( time() + ( MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK );
[1135] Fix | Delete
}
[1136] Fix | Delete
}
[1137] Fix | Delete
[1138] Fix | Delete
/**
[1139] Fix | Delete
* Performs the 22.6 upgrade routine.
[1140] Fix | Delete
* Schedules another cleanup scheduled action, but starting from the last cleanup action we just added (if there aren't any running cleanups already).
[1141] Fix | Delete
*
[1142] Fix | Delete
* @return void
[1143] Fix | Delete
*/
[1144] Fix | Delete
private function upgrade_226() {
[1145] Fix | Delete
if ( get_option( Cleanup_Integration::CURRENT_TASK_OPTION ) === false ) {
[1146] Fix | Delete
$cleanup_integration = YoastSEO()->classes->get( Cleanup_Integration::class );
[1147] Fix | Delete
$cleanup_integration->start_cron_job( 'clean_selected_empty_usermeta', DAY_IN_SECONDS );
[1148] Fix | Delete
}
[1149] Fix | Delete
}
[1150] Fix | Delete
[1151] Fix | Delete
/**
[1152] Fix | Delete
* Sets the home_url option for the 15.1 upgrade routine.
[1153] Fix | Delete
*
[1154] Fix | Delete
* @return void
[1155] Fix | Delete
*/
[1156] Fix | Delete
protected function set_home_url_for_151() {
[1157] Fix | Delete
$home_url = WPSEO_Options::get( 'home_url' );
[1158] Fix | Delete
[1159] Fix | Delete
if ( empty( $home_url ) ) {
[1160] Fix | Delete
WPSEO_Options::set( 'home_url', get_home_url() );
[1161] Fix | Delete
}
[1162] Fix | Delete
}
[1163] Fix | Delete
[1164] Fix | Delete
/**
[1165] Fix | Delete
* Moves the `indexables_indexation_reason` option to the
[1166] Fix | Delete
* renamed `indexing_reason` option.
[1167] Fix | Delete
*
[1168] Fix | Delete
* @return void
[1169] Fix | Delete
*/
[1170] Fix | Delete
protected function move_indexables_indexation_reason_for_151() {
[1171] Fix | Delete
$reason = WPSEO_Options::get( 'indexables_indexation_reason', '' );
[1172] Fix | Delete
WPSEO_Options::set( 'indexing_reason', $reason );
[1173] Fix | Delete
}
[1174] Fix | Delete
[1175] Fix | Delete
/**
[1176] Fix | Delete
* Checks if the indexable indexation is completed.
[1177] Fix | Delete
* If so, sets the `indexables_indexation_completed` option to `true`,
[1178] Fix | Delete
* else to `false`.
[1179] Fix | Delete
*
[1180] Fix | Delete
* @return void
[1181] Fix | Delete
*/
[1182] Fix | Delete
public function set_indexation_completed_option_for_145() {
[1183] Fix | Delete
WPSEO_Options::set( 'indexables_indexation_completed', YoastSEO()->helpers->indexing->get_limited_filtered_unindexed_count( 1 ) === 0 );
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
/**
[1187] Fix | Delete
* Cleans up the private taxonomies from the indexables table for the upgrade routine to 14.1.
[1188] Fix | Delete
*
[1189] Fix | Delete
* @return void
[1190] Fix | Delete
*/
[1191] Fix | Delete
public function clean_up_private_taxonomies_for_141() {
[1192] Fix | Delete
global $wpdb;
[1193] Fix | Delete
[1194] Fix | Delete
// If migrations haven't been completed successfully the following may give false errors. So suppress them.
[1195] Fix | Delete
$show_errors = $wpdb->show_errors;
[1196] Fix | Delete
$wpdb->show_errors = false;
[1197] Fix | Delete
[1198] Fix | Delete
// Clean up indexables of private taxonomies.
[1199] Fix | Delete
$private_taxonomies = get_taxonomies( [ 'public' => false ], 'names' );
[1200] Fix | Delete
[1201] Fix | Delete
if ( empty( $private_taxonomies ) ) {
[1202] Fix | Delete
return;
[1203] Fix | Delete
}
[1204] Fix | Delete
[1205] Fix | Delete
$replacements = array_merge( [ Model::get_table_name( 'Indexable' ), 'object_type', 'object_sub_type' ], $private_taxonomies );
[1206] Fix | Delete
[1207] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches.
[1208] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way.
[1209] Fix | Delete
$wpdb->query(
[1210] Fix | Delete
$wpdb->prepare(
[1211] Fix | Delete
"DELETE FROM %i
[1212] Fix | Delete
WHERE %i = 'term'
[1213] Fix | Delete
AND %i IN ("
[1214] Fix | Delete
. implode( ', ', array_fill( 0, count( $private_taxonomies ), '%s' ) )
[1215] Fix | Delete
. ')',
[1216] Fix | Delete
$replacements
[1217] Fix | Delete
)
[1218] Fix | Delete
);
[1219] Fix | Delete
[1220] Fix | Delete
$wpdb->show_errors = $show_errors;
[1221] Fix | Delete
}
[1222] Fix | Delete
[1223] Fix | Delete
/**
[1224] Fix | Delete
* Resets the permalinks of attachments to `null` in the indexable table for the upgrade routine to 14.1.
[1225] Fix | Delete
*
[1226] Fix | Delete
* @return void
[1227] Fix | Delete
*/
[1228] Fix | Delete
private function reset_permalinks_of_attachments_for_141() {
[1229] Fix | Delete
global $wpdb;
[1230] Fix | Delete
[1231] Fix | Delete
// If migrations haven't been completed succesfully the following may give false errors. So suppress them.
[1232] Fix | Delete
$show_errors = $wpdb->show_errors;
[1233] Fix | Delete
$wpdb->show_errors = false;
[1234] Fix | Delete
[1235] Fix | Delete
// Reset the permalinks of the attachments in the indexable table.
[1236] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches.
[1237] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way.
[1238] Fix | Delete
$wpdb->query(
[1239] Fix | Delete
$wpdb->prepare(
[1240] Fix | Delete
"UPDATE %i SET %i = NULL WHERE %i = 'post' AND %i = 'attachment'",
[1241] Fix | Delete
[ Model::get_table_name( 'Indexable' ), 'permalink', 'object_type', 'object_sub_type' ]
[1242] Fix | Delete
)
[1243] Fix | Delete
);
[1244] Fix | Delete
[1245] Fix | Delete
$wpdb->show_errors = $show_errors;
[1246] Fix | Delete
}
[1247] Fix | Delete
[1248] Fix | Delete
/**
[1249] Fix | Delete
* Removes notifications from the Notification center for the 14.1 upgrade.
[1250] Fix | Delete
*
[1251] Fix | Delete
* @return void
[1252] Fix | Delete
*/
[1253] Fix | Delete
public function remove_notifications_for_141() {
[1254] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-dismiss-recalculate' );
[1255] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-dismiss-blog-public-notice' );
[1256] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-links-table-not-accessible' );
[1257] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-post-type-archive-notification' );
[1258] Fix | Delete
}
[1259] Fix | Delete
[1260] Fix | Delete
/**
[1261] Fix | Delete
* Removes the wpseo-suggested-plugin-yoast-acf-analysis notification from the Notification center for the 14.2 upgrade.
[1262] Fix | Delete
*
[1263] Fix | Delete
* @return void
[1264] Fix | Delete
*/
[1265] Fix | Delete
public function remove_acf_notification_for_142() {
[1266] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-suggested-plugin-yoast-acf-analysis' );
[1267] Fix | Delete
}
[1268] Fix | Delete
[1269] Fix | Delete
/**
[1270] Fix | Delete
* Removes the wpseo-plugin-updated notification from the Notification center for the 15.7 upgrade.
[1271] Fix | Delete
*
[1272] Fix | Delete
* @return void
[1273] Fix | Delete
*/
[1274] Fix | Delete
public function remove_plugin_updated_notification_for_157() {
[1275] Fix | Delete
Yoast_Notification_Center::get()->remove_notification_by_id( 'wpseo-plugin-updated' );
[1276] Fix | Delete
}
[1277] Fix | Delete
[1278] Fix | Delete
/**
[1279] Fix | Delete
* Removes all notifications saved in the database under 'wp_yoast_notifications'.
[1280] Fix | Delete
*
[1281] Fix | Delete
* @return void
[1282] Fix | Delete
*/
[1283] Fix | Delete
private function clean_all_notifications() {
[1284] Fix | Delete
global $wpdb;
[1285] Fix | Delete
delete_metadata( 'user', 0, $wpdb->get_blog_prefix() . Yoast_Notification_Center::STORAGE_KEY, '', true );
[1286] Fix | Delete
}
[1287] Fix | Delete
[1288] Fix | Delete
/**
[1289] Fix | Delete
* Removes the post meta fields for a given meta key.
[1290] Fix | Delete
*
[1291] Fix | Delete
* @param string $meta_key The meta key.
[1292] Fix | Delete
*
[1293] Fix | Delete
* @return void
[1294] Fix | Delete
*/
[1295] Fix | Delete
private function delete_post_meta( $meta_key ) {
[1296] Fix | Delete
global $wpdb;
[1297] Fix | Delete
$deleted = $wpdb->delete( $wpdb->postmeta, [ 'meta_key' => $meta_key ], [ '%s' ] );
[1298] Fix | Delete
[1299] Fix | Delete
if ( $deleted ) {
[1300] Fix | Delete
wp_cache_set( 'last_changed', microtime(), 'posts' );
[1301] Fix | Delete
}
[1302] Fix | Delete
}
[1303] Fix | Delete
[1304] Fix | Delete
/**
[1305] Fix | Delete
* Removes all sitemap validators.
[1306] Fix | Delete
*
[1307] Fix | Delete
* This should be executed on every upgrade routine until we have removed the sitemap caching in the database.
[1308] Fix | Delete
*
[1309] Fix | Delete
* @return void
[1310] Fix | Delete
*/
[1311] Fix | Delete
private function remove_sitemap_validators() {
[1312] Fix | Delete
global $wpdb;
[1313] Fix | Delete
[1314] Fix | Delete
// Remove all sitemap validators.
[1315] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches.
[1316] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way.
[1317] Fix | Delete
$wpdb->query(
[1318] Fix | Delete
$wpdb->prepare(
[1319] Fix | Delete
'DELETE FROM %i WHERE %i LIKE %s',
[1320] Fix | Delete
[ $wpdb->options, 'option_name', 'wpseo_sitemap%validator%' ]
[1321] Fix | Delete
)
[1322] Fix | Delete
);
[1323] Fix | Delete
}
[1324] Fix | Delete
[1325] Fix | Delete
/**
[1326] Fix | Delete
* Retrieves the option value directly from the database.
[1327] Fix | Delete
*
[1328] Fix | Delete
* @param string $option_name Option to retrieve.
[1329] Fix | Delete
*
[1330] Fix | Delete
* @return int|string|bool|float|array<string|int|bool|float> The content of the option if exists, otherwise an empty array.
[1331] Fix | Delete
*/
[1332] Fix | Delete
protected function get_option_from_database( $option_name ) {
[1333] Fix | Delete
global $wpdb;
[1334] Fix | Delete
[1335] Fix | Delete
// Load option directly from the database, to avoid filtering and sanitization.
[1336] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches.
[1337] Fix | Delete
// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way.
[1338] Fix | Delete
$results = $wpdb->get_results(
[1339] Fix | Delete
$wpdb->prepare(
[1340] Fix | Delete
'SELECT %i FROM %i WHERE %i = %s',
[1341] Fix | Delete
[ 'option_value', $wpdb->options, 'option_name', $option_name ]
[1342] Fix | Delete
),
[1343] Fix | Delete
ARRAY_A
[1344] Fix | Delete
);
[1345] Fix | Delete
[1346] Fix | Delete
if ( ! empty( $results ) ) {
[1347] Fix | Delete
return maybe_unserialize( $results[0]['option_value'] );
[1348] Fix | Delete
}
[1349] Fix | Delete
[1350] Fix | Delete
return [];
[1351] Fix | Delete
}
[1352] Fix | Delete
[1353] Fix | Delete
/**
[1354] Fix | Delete
* Cleans the option to make sure only relevant settings are there.
[1355] Fix | Delete
*
[1356] Fix | Delete
* @param string $option_name Option name save.
[1357] Fix | Delete
*
[1358] Fix | Delete
* @return void
[1359] Fix | Delete
*/
[1360] Fix | Delete
protected function cleanup_option_data( $option_name ) {
[1361] Fix | Delete
$data = get_option( $option_name, [] );
[1362] Fix | Delete
if ( ! is_array( $data ) || $data === [] ) {
[1363] Fix | Delete
return;
[1364] Fix | Delete
}
[1365] Fix | Delete
[1366] Fix | Delete
/*
[1367] Fix | Delete
* Clean up the option by re-saving it.
[1368] Fix | Delete
*
[1369] Fix | Delete
* The option framework will remove any settings that are not configured
[1370] Fix | Delete
* for this option, removing any migrated settings.
[1371] Fix | Delete
*/
[1372] Fix | Delete
update_option( $option_name, $data );
[1373] Fix | Delete
}
[1374] Fix | Delete
[1375] Fix | Delete
/**
[1376] Fix | Delete
* Saves an option setting to where it should be stored.
[1377] Fix | Delete
*
[1378] Fix | Delete
* @param int|string|bool|float|array<string|int|bool|float> $source_data The option containing the value to be migrated.
[1379] Fix | Delete
* @param string $source_setting Name of the key in the "from" option.
[1380] Fix | Delete
* @param string|null $target_setting Name of the key in the "to" option.
[1381] Fix | Delete
*
[1382] Fix | Delete
* @return void
[1383] Fix | Delete
*/
[1384] Fix | Delete
protected function save_option_setting( $source_data, $source_setting, $target_setting = null ) {
[1385] Fix | Delete
if ( $target_setting === null ) {
[1386] Fix | Delete
$target_setting = $source_setting;
[1387] Fix | Delete
}
[1388] Fix | Delete
[1389] Fix | Delete
if ( isset( $source_data[ $source_setting ] ) ) {
[1390] Fix | Delete
WPSEO_Options::set( $target_setting, $source_data[ $source_setting ] );
[1391] Fix | Delete
}
[1392] Fix | Delete
}
[1393] Fix | Delete
[1394] Fix | Delete
/**
[1395] Fix | Delete
* Migrates WooCommerce archive settings to the WooCommerce Shop page meta-data settings.
[1396] Fix | Delete
*
[1397] Fix | Delete
* If no Shop page is defined, nothing will be migrated.
[1398] Fix | Delete
*
[1399] Fix | Delete
* @return void
[1400] Fix | Delete
*/
[1401] Fix | Delete
private function migrate_woocommerce_archive_setting_to_shop_page() {
[1402] Fix | Delete
$shop_page_id = wc_get_page_id( 'shop' );
[1403] Fix | Delete
[1404] Fix | Delete
if ( $shop_page_id === -1 ) {
[1405] Fix | Delete
return;
[1406] Fix | Delete
}
[1407] Fix | Delete
[1408] Fix | Delete
$title = WPSEO_Meta::get_value( 'title', $shop_page_id );
[1409] Fix | Delete
[1410] Fix | Delete
if ( empty( $title ) ) {
[1411] Fix | Delete
$option_title = WPSEO_Options::get( 'title-ptarchive-product' );
[1412] Fix | Delete
[1413] Fix | Delete
WPSEO_Meta::set_value(
[1414] Fix | Delete
'title',
[1415] Fix | Delete
$option_title,
[1416] Fix | Delete
$shop_page_id
[1417] Fix | Delete
);
[1418] Fix | Delete
[1419] Fix | Delete
WPSEO_Options::set( 'title-ptarchive-product', '' );
[1420] Fix | Delete
}
[1421] Fix | Delete
[1422] Fix | Delete
$meta_description = WPSEO_Meta::get_value( 'metadesc', $shop_page_id );
[1423] Fix | Delete
[1424] Fix | Delete
if ( empty( $meta_description ) ) {
[1425] Fix | Delete
$option_metadesc = WPSEO_Options::get( 'metadesc-ptarchive-product' );
[1426] Fix | Delete
[1427] Fix | Delete
WPSEO_Meta::set_value(
[1428] Fix | Delete
'metadesc',
[1429] Fix | Delete
$option_metadesc,
[1430] Fix | Delete
$shop_page_id
[1431] Fix | Delete
);
[1432] Fix | Delete
[1433] Fix | Delete
WPSEO_Options::set( 'metadesc-ptarchive-product', '' );
[1434] Fix | Delete
}
[1435] Fix | Delete
[1436] Fix | Delete
$bc_title = WPSEO_Meta::get_value( 'bctitle', $shop_page_id );
[1437] Fix | Delete
[1438] Fix | Delete
if ( empty( $bc_title ) ) {
[1439] Fix | Delete
$option_bctitle = WPSEO_Options::get( 'bctitle-ptarchive-product' );
[1440] Fix | Delete
[1441] Fix | Delete
WPSEO_Meta::set_value(
[1442] Fix | Delete
'bctitle',
[1443] Fix | Delete
$option_bctitle,
[1444] Fix | Delete
$shop_page_id
[1445] Fix | Delete
);
[1446] Fix | Delete
[1447] Fix | Delete
WPSEO_Options::set( 'bctitle-ptarchive-product', '' );
[1448] Fix | Delete
}
[1449] Fix | Delete
[1450] Fix | Delete
$noindex = WPSEO_Meta::get_value( 'meta-robots-noindex', $shop_page_id );
[1451] Fix | Delete
[1452] Fix | Delete
if ( $noindex === '0' ) {
[1453] Fix | Delete
$option_noindex = WPSEO_Options::get( 'noindex-ptarchive-product' );
[1454] Fix | Delete
[1455] Fix | Delete
WPSEO_Meta::set_value(
[1456] Fix | Delete
'meta-robots-noindex',
[1457] Fix | Delete
$option_noindex,
[1458] Fix | Delete
$shop_page_id
[1459] Fix | Delete
);
[1460] Fix | Delete
[1461] Fix | Delete
WPSEO_Options::set( 'noindex-ptarchive-product', false );
[1462] Fix | Delete
}
[1463] Fix | Delete
}
[1464] Fix | Delete
[1465] Fix | Delete
/**
[1466] Fix | Delete
* Stores the initial `permalink_structure` option.
[1467] Fix | Delete
*
[1468] Fix | Delete
* @return void
[1469] Fix | Delete
*/
[1470] Fix | Delete
public function set_permalink_structure_option_for_151() {
[1471] Fix | Delete
WPSEO_Options::set( 'permalink_structure', get_option( 'permalink_structure' ) );
[1472] Fix | Delete
}
[1473] Fix | Delete
[1474] Fix | Delete
/**
[1475] Fix | Delete
* Stores the initial slugs of custom taxonomies.
[1476] Fix | Delete
*
[1477] Fix | Delete
* @return void
[1478] Fix | Delete
*/
[1479] Fix | Delete
public function store_custom_taxonomy_slugs_for_151() {
[1480] Fix | Delete
$taxonomies = $this->taxonomy_helper->get_custom_taxonomies();
[1481] Fix | Delete
[1482] Fix | Delete
$custom_taxonomies = [];
[1483] Fix | Delete
[1484] Fix | Delete
foreach ( $taxonomies as $taxonomy ) {
[1485] Fix | Delete
$slug = $this->taxonomy_helper->get_taxonomy_slug( $taxonomy );
[1486] Fix | Delete
[1487] Fix | Delete
$custom_taxonomies[ $taxonomy ] = $slug;
[1488] Fix | Delete
}
[1489] Fix | Delete
[1490] Fix | Delete
WPSEO_Options::set( 'custom_taxonomy_slugs', $custom_taxonomies );
[1491] Fix | Delete
}
[1492] Fix | Delete
[1493] Fix | Delete
/**
[1494] Fix | Delete
* Copies the frontpage social settings to the titles options.
[1495] Fix | Delete
*
[1496] Fix | Delete
* @return void
[1497] Fix | Delete
*/
[1498] Fix | Delete
public function copy_og_settings_from_social_to_titles() {
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function