Submit
Path:
~
/
home
/
b
/
f
/
x
/
bfxleof
/
www
/
wp-content
/
plugins
/
wordpress-seo
/
admin
/
File Content:
ajax.php
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin */ if ( ! defined( 'WPSEO_VERSION' ) ) { header( 'Status: 403 Forbidden' ); header( 'HTTP/1.1 403 Forbidden' ); exit(); } /** * Convenience function to JSON encode and echo results and then die. * * @param array $results Results array for encoding. */ function wpseo_ajax_json_echo_die( $results ) { // phpcs:ignore WordPress.Security.EscapeOutput -- Reason: WPSEO_Utils::format_json_encode is safe. echo WPSEO_Utils::format_json_encode( $results ); die(); } /** * Function used from AJAX calls, takes it variables from $_POST, dies on exit. */ function wpseo_set_option() { if ( ! current_user_can( 'manage_options' ) ) { die( '-1' ); } check_ajax_referer( 'wpseo-setoption' ); $option = sanitize_text_field( filter_input( INPUT_POST, 'option' ) ); if ( $option !== 'page_comments' ) { die( '-1' ); } update_option( $option, 0 ); die( '1' ); } add_action( 'wp_ajax_wpseo_set_option', 'wpseo_set_option' ); /** * Since 3.2 Notifications are dismissed in the Notification Center. */ add_action( 'wp_ajax_yoast_dismiss_notification', [ 'Yoast_Notification_Center', 'ajax_dismiss_notification' ] ); /** * Function used to remove the admin notices for several purposes, dies on exit. */ function wpseo_set_ignore() { if ( ! current_user_can( 'manage_options' ) ) { die( '-1' ); } check_ajax_referer( 'wpseo-ignore' ); $ignore_key = sanitize_text_field( filter_input( INPUT_POST, 'option' ) ); WPSEO_Options::set( 'ignore_' . $ignore_key, true ); die( '1' ); } add_action( 'wp_ajax_wpseo_set_ignore', 'wpseo_set_ignore' ); /** * Save an individual SEO title from the Bulk Editor. */ function wpseo_save_title() { wpseo_save_what( 'title' ); } add_action( 'wp_ajax_wpseo_save_title', 'wpseo_save_title' ); /** * Save an individual meta description from the Bulk Editor. */ function wpseo_save_description() { wpseo_save_what( 'metadesc' ); } add_action( 'wp_ajax_wpseo_save_metadesc', 'wpseo_save_description' ); /** * Save titles & descriptions. * * @param string $what Type of item to save (title, description). */ function wpseo_save_what( $what ) { check_ajax_referer( 'wpseo-bulk-editor' ); $new = filter_input( INPUT_POST, 'new_value' ); $post_id = intval( filter_input( INPUT_POST, 'wpseo_post_id' ) ); $original = filter_input( INPUT_POST, 'existing_value' ); $results = wpseo_upsert_new( $what, $post_id, $new, $original ); wpseo_ajax_json_echo_die( $results ); } /** * Helper function to update a post's meta data, returning relevant information * about the information updated and the results or the meta update. * * @param int $post_id Post ID. * @param string $new_meta_value New meta value to record. * @param string $orig_meta_value Original meta value. * @param string $meta_key Meta key string. * @param string $return_key Return key string to use in results. * * @return string */ function wpseo_upsert_meta( $post_id, $new_meta_value, $orig_meta_value, $meta_key, $return_key ) { $post_id = intval( $post_id ); $sanitized_new_meta_value = wp_strip_all_tags( $new_meta_value ); $orig_meta_value = wp_strip_all_tags( $orig_meta_value ); $upsert_results = [ 'status' => 'success', 'post_id' => $post_id, "new_{$return_key}" => $sanitized_new_meta_value, "original_{$return_key}" => $orig_meta_value, ]; $the_post = get_post( $post_id ); if ( empty( $the_post ) ) { $upsert_results['status'] = 'failure'; $upsert_results['results'] = __( 'Post doesn\'t exist.', 'wordpress-seo' ); return $upsert_results; } $post_type_object = get_post_type_object( $the_post->post_type ); if ( ! $post_type_object ) { $upsert_results['status'] = 'failure'; $upsert_results['results'] = sprintf( /* translators: %s expands to post type. */ __( 'Post has an invalid Content Type: %s.', 'wordpress-seo' ), $the_post->post_type ); return $upsert_results; } if ( ! current_user_can( $post_type_object->cap->edit_posts ) ) { $upsert_results['status'] = 'failure'; $upsert_results['results'] = sprintf( /* translators: %s expands to post type name. */ __( 'You can\'t edit %s.', 'wordpress-seo' ), $post_type_object->label ); return $upsert_results; } if ( ! current_user_can( $post_type_object->cap->edit_others_posts ) && (int) $the_post->post_author !== get_current_user_id() ) { $upsert_results['status'] = 'failure'; $upsert_results['results'] = sprintf( /* translators: %s expands to the name of a post type (plural). */ __( 'You can\'t edit %s that aren\'t yours.', 'wordpress-seo' ), $post_type_object->label ); return $upsert_results; } if ( $sanitized_new_meta_value === $orig_meta_value && $sanitized_new_meta_value !== $new_meta_value ) { $upsert_results['status'] = 'failure'; $upsert_results['results'] = __( 'You have used HTML in your value which is not allowed.', 'wordpress-seo' ); return $upsert_results; } $res = update_post_meta( $post_id, $meta_key, $sanitized_new_meta_value ); $upsert_results['status'] = ( $res !== false ) ? 'success' : 'failure'; $upsert_results['results'] = $res; return $upsert_results; } /** * Save all titles sent from the Bulk Editor. */ function wpseo_save_all_titles() { wpseo_save_all( 'title' ); } add_action( 'wp_ajax_wpseo_save_all_titles', 'wpseo_save_all_titles' ); /** * Save all description sent from the Bulk Editor. */ function wpseo_save_all_descriptions() { wpseo_save_all( 'metadesc' ); } add_action( 'wp_ajax_wpseo_save_all_descriptions', 'wpseo_save_all_descriptions' ); /** * Utility function to save values. * * @param string $what Type of item so save. */ function wpseo_save_all( $what ) { check_ajax_referer( 'wpseo-bulk-editor' ); $results = []; if ( ! isset( $_POST['items'], $_POST['existingItems'] ) ) { wpseo_ajax_json_echo_die( $results ); } $new_values = array_map( [ 'WPSEO_Utils', 'sanitize_text_field' ], wp_unslash( (array) $_POST['items'] ) ); $original_values = array_map( [ 'WPSEO_Utils', 'sanitize_text_field' ], wp_unslash( (array) $_POST['existingItems'] ) ); foreach ( $new_values as $post_id => $new_value ) { $original_value = $original_values[ $post_id ]; $results[] = wpseo_upsert_new( $what, $post_id, $new_value, $original_value ); } wpseo_ajax_json_echo_die( $results ); } /** * Insert a new value. * * @param string $what Item type (such as title). * @param int $post_id Post ID. * @param string $new New value to record. * @param string $original Original value. * * @return string */ function wpseo_upsert_new( $what, $post_id, $new, $original ) { $meta_key = WPSEO_Meta::$meta_prefix . $what; return wpseo_upsert_meta( $post_id, $new, $original, $meta_key, $what ); } /** * Retrieves the keyword for the keyword doubles. */ function ajax_get_keyword_usage() { $post_id = filter_input( INPUT_POST, 'post_id' ); $keyword = filter_input( INPUT_POST, 'keyword' ); if ( ! current_user_can( 'edit_post', $post_id ) ) { die( '-1' ); } wp_die( // phpcs:ignore WordPress.Security.EscapeOutput -- Reason: WPSEO_Utils::format_json_encode is safe. WPSEO_Utils::format_json_encode( WPSEO_Meta::keyword_usage( $keyword, $post_id ) ) ); } add_action( 'wp_ajax_get_focus_keyword_usage', 'ajax_get_keyword_usage' ); /** * Retrieves the keyword for the keyword doubles of the termpages. */ function ajax_get_term_keyword_usage() { $post_id = filter_input( INPUT_POST, 'post_id' ); $keyword = filter_input( INPUT_POST, 'keyword' ); $taxonomy_name = filter_input( INPUT_POST, 'taxonomy' ); $taxonomy = get_taxonomy( $taxonomy_name ); if ( ! $taxonomy ) { wp_die( 0 ); } if ( ! current_user_can( $taxonomy->cap->edit_terms ) ) { wp_die( -1 ); } $usage = WPSEO_Taxonomy_Meta::get_keyword_usage( $keyword, $post_id, $taxonomy_name ); // Normalize the result so it it the same as the post keyword usage AJAX request. $usage = $usage[ $keyword ]; wp_die( // phpcs:ignore WordPress.Security.EscapeOutput -- Reason: WPSEO_Utils::format_json_encode is safe. WPSEO_Utils::format_json_encode( $usage ) ); } add_action( 'wp_ajax_get_term_keyword_usage', 'ajax_get_term_keyword_usage' ); /** * Registers hooks for all AJAX integrations. * * @return void */ function wpseo_register_ajax_integrations() { $integrations = [ new Yoast_Network_Admin() ]; foreach ( $integrations as $integration ) { $integration->register_ajax_hooks(); } } wpseo_register_ajax_integrations(); new WPSEO_Shortcode_Filter(); new WPSEO_Taxonomy_Columns(); /* ********************* DEPRECATED FUNCTIONS ********************* */ /** * Hides the default tagline notice for a specific user. * * @deprecated 13.2 * @codeCoverageIgnore */ function wpseo_dismiss_tagline_notice() { if ( ! current_user_can( 'manage_options' ) ) { die( '-1' ); } _deprecated_function( __FUNCTION__, 'WPSEO 13.2', 'This method is deprecated.' ); wpseo_ajax_json_echo_die( '' ); }
Submit
FILE
FOLDER
Name
Size
Permission
Action
ajax
---
0755
capabilities
---
0755
config-ui
---
0755
endpoints
---
0755
exceptions
---
0755
filters
---
0755
formatter
---
0755
google_search_console
---
0755
import
---
0755
listeners
---
0755
menu
---
0755
metabox
---
0755
notifiers
---
0755
pages
---
0755
roles
---
0755
ryte
---
0755
services
---
0755
statistics
---
0755
taxonomy
---
0755
tracking
---
0755
views
---
0755
watchers
---
0755
.DS_Store
10234 bytes
0644
20200616130143_ReplacePermalinkHashIndex-20260705090100.php
2293 bytes
0644
20200616130143_ReplacePermalinkHashIndex.php
2293 bytes
0644
AjaxController.php
2162 bytes
0644
DownloadConfController-20260706051531.php
945 bytes
0644
DownloadConfController.php
945 bytes
0644
JsonSerializable-20260705095652.php
577 bytes
0644
JsonSerializable-20260705181353.php
577 bytes
0644
JsonSerializable.php
577 bytes
0644
LimitStream.php
4209 bytes
0644
MessageInterface.php
6950 bytes
0644
README.md
2555 bytes
0644
admin-network-it_IT.l10n.php
42133 bytes
0644
admin-settings-changed-listener.php
2403 bytes
0644
ajax.php
9095 bytes
0644
base-20260707183508.php
2793 bytes
0644
base.php
2793 bytes
0644
bing-presenter.php
638 bytes
0644
class-abstract-capability-manager.php
2265 bytes
0644
class-abstract-plugin-importer.php
8466 bytes
0644
class-admin-asset-analysis-worker-location.php
1849 bytes
0644
class-admin-asset-location.php
488 bytes
0644
class-admin-asset-manager-20260623075208.php
17386 bytes
0644
class-admin-asset-manager.php
17386 bytes
0644
class-admin-asset-seo-location.php
2147 bytes
0644
class-admin-asset-yoast-components-l10n.php
1679 bytes
0644
class-admin-media-purge-notification.php
3300 bytes
0644
class-admin-menu-20260623023741.php
4046 bytes
0644
class-admin-utils-20260622095013.php
2147 bytes
0644
class-admin-utils.php
2147 bytes
0644
class-asset.php
4016 bytes
0644
class-bulk-description-editor-list-table.php
2100 bytes
0644
class-bulk-editor-list-table.php
28411 bytes
0644
class-bulk-title-editor-list-table.php
2286 bytes
0644
class-collector.php
984 bytes
0644
class-config-20260622104031.php
5976 bytes
0644
class-endpoint.php
471 bytes
0644
class-expose-shortlinks-20260622052420.php
4996 bytes
0644
class-expose-shortlinks.php
4996 bytes
0644
class-gutenberg-compatibility-20260622104351.php
2510 bytes
0644
class-helpscout-20260623075312.php
6972 bytes
0644
class-helpscout.php
6972 bytes
0644
class-import-detector.php
728 bytes
0644
class-meta-columns.php
22386 bytes
0644
class-metabox-formatter.php
12602 bytes
0644
class-metabox-null-tab-20260705060522.php
425 bytes
0644
class-metabox-null-tab.php
425 bytes
0644
class-my-yoast-proxy.php
5373 bytes
0644
class-option-tab-20260622044109.php
1784 bytes
0644
class-option-tabs-formatter-20260622034247.php
2321 bytes
0644
class-option-tabs-formatter.php
2321 bytes
0644
class-option-tabs.php
2097 bytes
0644
class-paper-presenter.php
3600 bytes
0644
class-plugin-availability-20260622071513.php
8440 bytes
0644
class-plugin-availability.php
8440 bytes
0644
class-plugin-conflict-20260622015355.php
8640 bytes
0644
class-premium-popup.php
2833 bytes
0644
class-premium-upsell-admin-block.php
3631 bytes
0644
class-product-upsell-notice.php
5216 bytes
0644
class-schema-person-upgrade-notification.php
2133 bytes
0644
class-sitemaps-admin-20260703023908.php
3665 bytes
0644
class-sitemaps-admin-20260705122758.php
3665 bytes
0644
class-sitemaps-admin.php
3665 bytes
0644
class-tracking-server-data.php
1989 bytes
0644
class-tracking-settings-data-20260623041512.php
5203 bytes
0644
class-tracking-settings-data.php
5203 bytes
0644
class-wpseo-statistics.php
1443 bytes
0644
class-yoast-columns.php
3281 bytes
0644
class-yoast-dashboard-widget.php
4033 bytes
0644
class-yoast-form-20260622052325.php
31520 bytes
0644
class-yoast-form.php
31520 bytes
0644
class-yoast-notification-20260622071615.php
9611 bytes
0644
class-yoast-notification-center.php
23601 bytes
0644
class-yoast-notification.php
9611 bytes
0644
class-yoast-notifications.php
8784 bytes
0644
class-yoast-plugin-conflict.php
10390 bytes
0644
class.archive.config.php
1364 bytes
0644
class.pack.database.php
30838 bytes
0644
ctrl.package.php
17073 bytes
0644
dashboard-1650-rtl.css
1634 bytes
0644
define.php
4567 bytes
0644
description-presenter-20260623011438.php
1026 bytes
0644
duplicator-20260623154449.php
1781 bytes
0644
duplicator-en_US.mo
582 bytes
0644
duplicator-main-20260623011502.php
26907 bytes
0644
duplicator.php
1781 bytes
0644
elFinderPlugin-20260705182242.php
3331 bytes
0644
elFinderPlugin.php
3331 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500-20260705194237.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500-20260706065003.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class.php
48544 bytes
0644
environment-helper.php
596 bytes
0644
exceptions.php
708 bytes
0644
flexible-widget.php
11167 bytes
0644
image-helper.php
10231 bytes
0644
image-presenter.php
2093 bytes
0644
inc.data.php
5121 bytes
0644
inc.validator-20260705162141.php
5401 bytes
0644
inc.validator.php
5401 bytes
0644
index.php
157663 bytes
0644
interface-sitemap-cache-data.php
1208 bytes
0644
loco-20260705162115-20260707054756.php
5626 bytes
0644
loco-20260705162115.php
5626 bytes
0644
loco.php
5626 bytes
0644
loco.xml
657 bytes
0644
manager.php
14659 bytes
0644
meta-fields-presenter.php
1600 bytes
0644
module-20260706041630-20260707074326.php
1297 bytes
0644
module-20260706041630.php
1297 bytes
0644
module.php
1297 bytes
0644
partial-notifications-errors-20260623074505.php
1139 bytes
0644
partial-notifications-errors.php
1139 bytes
0644
quick-edit-handler-1650-20260707001148.js
1848 bytes
0644
quick-edit-handler-1650.js
1848 bytes
0644
recovery.php
1146 bytes
0644
request-methods-header.php
1127 bytes
0644
root.php
1951 bytes
0644
setup.php
2699 bytes
0644
social.php
725 bytes
0644
uninstall.php
4401 bytes
0644
wordpress-seo-es_ES.json
25583 bytes
0644
wordpress-seojs-ar-20260705091659.json
25925 bytes
0644
wordpress-seojs-ar.json
25925 bytes
0644
wordpress-seojs-bs_BA.json
13790 bytes
0644
wordpress-seojs-gl_ES.json
20143 bytes
0644
wordpress-seojs-ja.json
21424 bytes
0644
wordpress-seojs-uk.json
26506 bytes
0644
wp-seo-main.php
17504 bytes
0644
N4ST4R_ID | Naxtarrr