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/clone/wp-conte.../plugins/password.../public
File: class-ppw-public.php
<?php
[0] Fix | Delete
[1] Fix | Delete
/**
[2] Fix | Delete
* The public-facing functionality of the plugin.
[3] Fix | Delete
*
[4] Fix | Delete
* @link https://passwordprotectwp.com
[5] Fix | Delete
* @since 1.0.0
[6] Fix | Delete
*
[7] Fix | Delete
* @package Password_Protect_Page
[8] Fix | Delete
* @subpackage Password_Protect_Page/public
[9] Fix | Delete
*/
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* The public-facing functionality of the plugin.
[13] Fix | Delete
*
[14] Fix | Delete
* Defines the plugin name, version, and two examples hooks for how to
[15] Fix | Delete
* enqueue the public-facing stylesheet and JavaScript.
[16] Fix | Delete
*
[17] Fix | Delete
* @package Password_Protect_Page
[18] Fix | Delete
* @subpackage Password_Protect_Page/public
[19] Fix | Delete
* @author BWPS <hello@preventdirectaccess.com>
[20] Fix | Delete
*/
[21] Fix | Delete
class PPW_Public {
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* The ID of this plugin.
[25] Fix | Delete
*
[26] Fix | Delete
* @since 1.0.0
[27] Fix | Delete
* @access private
[28] Fix | Delete
* @var string $plugin_name The ID of this plugin.
[29] Fix | Delete
*/
[30] Fix | Delete
private $plugin_name;
[31] Fix | Delete
[32] Fix | Delete
/**
[33] Fix | Delete
* The version of this plugin.
[34] Fix | Delete
*
[35] Fix | Delete
* @since 1.0.0
[36] Fix | Delete
* @access private
[37] Fix | Delete
* @var string $version The current version of this plugin.
[38] Fix | Delete
*/
[39] Fix | Delete
private $version;
[40] Fix | Delete
[41] Fix | Delete
/**
[42] Fix | Delete
* Class PPW_Password_Services
[43] Fix | Delete
*
[44] Fix | Delete
* @var PPW_Password_Services
[45] Fix | Delete
*/
[46] Fix | Delete
private $password_services;
[47] Fix | Delete
[48] Fix | Delete
/**
[49] Fix | Delete
* Initialize the class and set its properties.
[50] Fix | Delete
*
[51] Fix | Delete
* @param string $plugin_name The name of the plugin.
[52] Fix | Delete
* @param string $version The version of this plugin.
[53] Fix | Delete
*
[54] Fix | Delete
* @since 1.0.0
[55] Fix | Delete
*/
[56] Fix | Delete
public function __construct( $plugin_name, $version ) {
[57] Fix | Delete
$this->plugin_name = $plugin_name;
[58] Fix | Delete
$this->version = $version;
[59] Fix | Delete
$this->password_services = new PPW_Password_Services();
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/**
[63] Fix | Delete
* Register the stylesheets and javascript for the public-facing side of the site.
[64] Fix | Delete
*
[65] Fix | Delete
* @since 1.0.0
[66] Fix | Delete
*/
[67] Fix | Delete
public function enqueue_assets() {
[68] Fix | Delete
[69] Fix | Delete
/**
[70] Fix | Delete
* This function is provided for demonstration purposes only.
[71] Fix | Delete
*
[72] Fix | Delete
* An instance of this class should be passed to the run() function
[73] Fix | Delete
* defined in Password_Protect_Page_Loader as all of the hooks are defined
[74] Fix | Delete
* in that particular class.
[75] Fix | Delete
*
[76] Fix | Delete
* The Password_Protect_Page_Loader will then create the relationship
[77] Fix | Delete
* between the defined hooks and the functions defined in this
[78] Fix | Delete
* class.
[79] Fix | Delete
*/
[80] Fix | Delete
[81] Fix | Delete
}
[82] Fix | Delete
[83] Fix | Delete
/**
[84] Fix | Delete
* Filter before render content.
[85] Fix | Delete
*
[86] Fix | Delete
* @param string $content Content of post/page.
[87] Fix | Delete
*
[88] Fix | Delete
* @return mixed
[89] Fix | Delete
* @deprecated Because we only use post_password_required to show login form.
[90] Fix | Delete
* @since 1.2.2 Deprecated for function, we will remove it after 2 release.
[91] Fix | Delete
*/
[92] Fix | Delete
public function ppw_filter_content( $content ) {
[93] Fix | Delete
if ( ! in_the_loop() ) {
[94] Fix | Delete
return $content;
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
$post = get_post();
[98] Fix | Delete
if ( is_null( $post ) ) {
[99] Fix | Delete
return $content;
[100] Fix | Delete
}
[101] Fix | Delete
[102] Fix | Delete
$post_id = $post->ID;
[103] Fix | Delete
$is_pro_activate = apply_filters( PPW_Constants::HOOK_IS_PRO_ACTIVATE, false );
[104] Fix | Delete
if ( $is_pro_activate ) {
[105] Fix | Delete
return apply_filters( PPW_Constants::HOOK_CHECK_PASSWORD_BEFORE_RENDER_CONTENT, $content, $post_id );
[106] Fix | Delete
}
[107] Fix | Delete
[108] Fix | Delete
return $this->ppw_free_content_filter( $content, $post_id );
[109] Fix | Delete
}
[110] Fix | Delete
[111] Fix | Delete
/**
[112] Fix | Delete
* Filter content for free version
[113] Fix | Delete
*
[114] Fix | Delete
* @param array $post_id Data from client.
[115] Fix | Delete
* @param string $content Data from client.
[116] Fix | Delete
*
[117] Fix | Delete
* @return bool|string
[118] Fix | Delete
* @deprecated
[119] Fix | Delete
*
[120] Fix | Delete
*/
[121] Fix | Delete
private function ppw_free_content_filter( $content, $post_id ) {
[122] Fix | Delete
// 1. Check page/post is protected.
[123] Fix | Delete
$result = $this->password_services->is_protected_content( $post_id );
[124] Fix | Delete
if ( false === $result ) {
[125] Fix | Delete
return $content;
[126] Fix | Delete
}
[127] Fix | Delete
[128] Fix | Delete
// 2. Check password in cookie.
[129] Fix | Delete
$passwords = $result['passwords'];
[130] Fix | Delete
if ( $this->password_services->is_valid_cookie( $post_id, $passwords, PPW_Constants::COOKIE_NAME ) ) {
[131] Fix | Delete
return $content;
[132] Fix | Delete
}
[133] Fix | Delete
[134] Fix | Delete
// 3. Form rendering.
[135] Fix | Delete
if ( $result['has_global_passwords'] || ( $result['has_role_passwords'] && $result['has_current_role_password'] ) ) {
[136] Fix | Delete
return ppw_core_render_login_form();
[137] Fix | Delete
}
[138] Fix | Delete
[139] Fix | Delete
return '<p><strong>' . _e('This page is protected. Please try again or contact the website owner.', PPW_Constants::DOMAIN) . '</strong></p>';
[140] Fix | Delete
}
[141] Fix | Delete
[142] Fix | Delete
/**
[143] Fix | Delete
* Post class
[144] Fix | Delete
*
[145] Fix | Delete
* @param array $classes Classes.
[146] Fix | Delete
*
[147] Fix | Delete
* @return array
[148] Fix | Delete
* @since 1.5.0 Mark deprecated function.
[149] Fix | Delete
* @deprecated
[150] Fix | Delete
*/
[151] Fix | Delete
public function ppw_post_class( $classes ) {
[152] Fix | Delete
$classes[] = PPW_Constants::CUSTOM_POST_CLASS;
[153] Fix | Delete
[154] Fix | Delete
return $classes;
[155] Fix | Delete
}
[156] Fix | Delete
[157] Fix | Delete
/**
[158] Fix | Delete
* Show custom login form which protected by PPW Plugin, it will replace default form of WordPress.
[159] Fix | Delete
*
[160] Fix | Delete
* @param string $output The password form HTML output.
[161] Fix | Delete
*
[162] Fix | Delete
* @return string The password form HTML output.
[163] Fix | Delete
*
[164] Fix | Delete
* @global WP_Post $post Post object
[165] Fix | Delete
* @since 1.2.2 Init the_password_form
[166] Fix | Delete
*/
[167] Fix | Delete
public function ppw_the_password_form( $output ) {
[168] Fix | Delete
$post = $GLOBALS['post'];
[169] Fix | Delete
if ( empty( $post->ID ) || ! ppw_is_post_type_selected_in_setting( $post->post_type ) ) {
[170] Fix | Delete
return $output;
[171] Fix | Delete
}
[172] Fix | Delete
[173] Fix | Delete
$should_render_form = apply_filters( PPW_Constants::HOOK_SHOULD_RENDER_PASSWORD_FORM, true );
[174] Fix | Delete
[175] Fix | Delete
if ( ! $should_render_form ) {
[176] Fix | Delete
return '';
[177] Fix | Delete
}
[178] Fix | Delete
[179] Fix | Delete
return ppw_core_render_login_form();
[180] Fix | Delete
}
[181] Fix | Delete
[182] Fix | Delete
/**
[183] Fix | Delete
* Only render text in all page diff post/page custom post type which it is not have post_id input.
[184] Fix | Delete
* Check a site is post/page or custom post type
[185] Fix | Delete
* Use regex to check it is our password form then render text.
[186] Fix | Delete
*
[187] Fix | Delete
* @param string $content Content of the post.
[188] Fix | Delete
*
[189] Fix | Delete
* @return string
[190] Fix | Delete
*/
[191] Fix | Delete
public function ppw_the_content( $content ) {
[192] Fix | Delete
// Do not handle on admin page.
[193] Fix | Delete
if ( is_admin() ) {
[194] Fix | Delete
return $content;
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
$is_show_excerpt = ppw_core_get_setting_type_bool_by_option_name( PPW_Constants::PROTECT_EXCERPT, PPW_Constants::MISC_OPTIONS );
[198] Fix | Delete
if ( is_singular() && ! $is_show_excerpt ) {
[199] Fix | Delete
return $content;
[200] Fix | Delete
}
[201] Fix | Delete
[202] Fix | Delete
$post = get_post();
[203] Fix | Delete
// Check post type is selected.
[204] Fix | Delete
if ( ! $post || ! ppw_is_post_type_selected_in_setting( $post->post_type ) ) {
[205] Fix | Delete
return $content;
[206] Fix | Delete
}
[207] Fix | Delete
[208] Fix | Delete
// Check it is password form.
[209] Fix | Delete
if ( post_password_required() ) {
[210] Fix | Delete
[211] Fix | Delete
return ppw_handle_protected_content( $post, $content, $is_show_excerpt );
[212] Fix | Delete
}
[213] Fix | Delete
[214] Fix | Delete
return $content;
[215] Fix | Delete
}
[216] Fix | Delete
[217] Fix | Delete
/**
[218] Fix | Delete
* Register shortcodes
[219] Fix | Delete
*/
[220] Fix | Delete
public function register_shortcodes() {
[221] Fix | Delete
$this->create_caps();
[222] Fix | Delete
[223] Fix | Delete
PPW_Shortcode::get_instance();
[224] Fix | Delete
}
[225] Fix | Delete
[226] Fix | Delete
/**
[227] Fix | Delete
* Create PPWP Capabilities.
[228] Fix | Delete
*/
[229] Fix | Delete
public function create_caps() {
[230] Fix | Delete
global $wp_roles;
[231] Fix | Delete
[232] Fix | Delete
if ( ! class_exists( 'WP_Roles' ) ) {
[233] Fix | Delete
return;
[234] Fix | Delete
}
[235] Fix | Delete
[236] Fix | Delete
if ( ! isset( $wp_roles ) ) {
[237] Fix | Delete
$wp_roles = new WP_Roles(); // @codingStandardsIgnoreLine
[238] Fix | Delete
}
[239] Fix | Delete
[240] Fix | Delete
$capabilities = array(
[241] Fix | Delete
'ppwp_manage_options'
[242] Fix | Delete
);
[243] Fix | Delete
[244] Fix | Delete
foreach ( $capabilities as $cap ) {
[245] Fix | Delete
$wp_roles->add_cap( 'administrator', $cap );
[246] Fix | Delete
}
[247] Fix | Delete
}
[248] Fix | Delete
[249] Fix | Delete
/**
[250] Fix | Delete
* Check logic and hide pages/posts protected
[251] Fix | Delete
*
[252] Fix | Delete
* @param string $where The WHERE clause of the query.
[253] Fix | Delete
* @param WP_Query $wp_query The WP_Query instance (passed by reference).
[254] Fix | Delete
*
[255] Fix | Delete
* @return string
[256] Fix | Delete
*/
[257] Fix | Delete
public function handle_hide_post_protected( $where, $wp_query ) {
[258] Fix | Delete
if ( is_admin() ) {
[259] Fix | Delete
return $where;
[260] Fix | Delete
}
[261] Fix | Delete
[262] Fix | Delete
return $this->password_services->handle_hide_post_protected( $where, $wp_query );
[263] Fix | Delete
}
[264] Fix | Delete
[265] Fix | Delete
/**
[266] Fix | Delete
* Check logic and hide posts protected in recent post
[267] Fix | Delete
*
[268] Fix | Delete
* @param array $posts_args An array of arguments used to retrieve the recent posts.
[269] Fix | Delete
*
[270] Fix | Delete
* @return array
[271] Fix | Delete
*/
[272] Fix | Delete
public function handle_hide_post_protected_recent_post( $posts_args ) {
[273] Fix | Delete
if ( is_admin() ) {
[274] Fix | Delete
return $posts_args;
[275] Fix | Delete
}
[276] Fix | Delete
[277] Fix | Delete
return $this->password_services->handle_hide_post_protected_recent_post( $posts_args );
[278] Fix | Delete
}
[279] Fix | Delete
[280] Fix | Delete
/**
[281] Fix | Delete
* Check logic and hide posts protected in next and previous post
[282] Fix | Delete
*
[283] Fix | Delete
* @param string $where The WHERE clause of the query.
[284] Fix | Delete
*
[285] Fix | Delete
* @return string
[286] Fix | Delete
*/
[287] Fix | Delete
public function handle_hide_post_protected_next_and_previous( $where ) {
[288] Fix | Delete
if ( is_admin() ) {
[289] Fix | Delete
return $where;
[290] Fix | Delete
}
[291] Fix | Delete
[292] Fix | Delete
return $this->password_services->handle_hide_post_protected_next_and_previous( $where );
[293] Fix | Delete
}
[294] Fix | Delete
[295] Fix | Delete
/**
[296] Fix | Delete
* Check condition and exclude protected page in list page get by function get_pages
[297] Fix | Delete
*
[298] Fix | Delete
* @param array $pages List of pages to retrieve.
[299] Fix | Delete
* @param array $param Array of get_pages() arguments.
[300] Fix | Delete
*
[301] Fix | Delete
* @return array
[302] Fix | Delete
*/
[303] Fix | Delete
public function handle_hide_page_protected( $pages, $param ) {
[304] Fix | Delete
if ( is_admin() ) {
[305] Fix | Delete
return $pages;
[306] Fix | Delete
}
[307] Fix | Delete
[308] Fix | Delete
return $this->password_services->handle_hide_page_protected( $pages );
[309] Fix | Delete
}
[310] Fix | Delete
[311] Fix | Delete
/**
[312] Fix | Delete
* Check condition and exclude page/post protected in Yoast SEO XML Sitemaps
[313] Fix | Delete
*
[314] Fix | Delete
* @param array $ids List page_id/post_id exclude in Yoast SEO XML Sitemaps.
[315] Fix | Delete
*
[316] Fix | Delete
* @return array
[317] Fix | Delete
*/
[318] Fix | Delete
public function handle_hide_page_protected_yoast_seo_sitemaps( $ids ) {
[319] Fix | Delete
if ( is_admin() ) {
[320] Fix | Delete
return $ids;
[321] Fix | Delete
}
[322] Fix | Delete
[323] Fix | Delete
return $this->password_services->handle_hide_page_protected_yoast_seo_sitemaps( $ids );
[324] Fix | Delete
}
[325] Fix | Delete
[326] Fix | Delete
/**
[327] Fix | Delete
* Validate login.
[328] Fix | Delete
*/
[329] Fix | Delete
public function ppw_core_validate_login() {
[330] Fix | Delete
/**
[331] Fix | Delete
* Should check request have parameter generated by PPF Form.
[332] Fix | Delete
*/
[333] Fix | Delete
if ( ! isset( $_GET['action'] ) || ! isset( $_GET['type'] ) || ! isset( $_GET[ PPW_Constants::CALL_BACK_URL_PARAM ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Processing form data without nonce verification. - Not verify nonce for password validate.
[334] Fix | Delete
return;
[335] Fix | Delete
}
[336] Fix | Delete
if ( 'ppw_postpass' !== $_GET['action'] || 'individual' !== $_GET['type'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Processing form data without nonce verification. - Not verify nonce for password validate.
[337] Fix | Delete
return;
[338] Fix | Delete
}
[339] Fix | Delete
[340] Fix | Delete
if ( ! ppw_core_get_setting_type_bool_by_option_name( PPW_Constants::USE_CUSTOM_FORM_ACTION, PPW_Constants::MISC_OPTIONS ) ) {
[341] Fix | Delete
return;
[342] Fix | Delete
}
[343] Fix | Delete
[344] Fix | Delete
// It is post method and have post_password input from user.
[345] Fix | Delete
if ( ! isset( $_POST['post_password'] ) ) {
[346] Fix | Delete
wp_safe_redirect( $this->password_services->get_referer_url() );
[347] Fix | Delete
exit();
[348] Fix | Delete
}
[349] Fix | Delete
[350] Fix | Delete
// Get post_id from referer url if Post data is not exist post_id.
[351] Fix | Delete
$post_id = ppw_get_post_id_from_request();
[352] Fix | Delete
[353] Fix | Delete
if ( empty( $post_id ) ) {
[354] Fix | Delete
wp_safe_redirect( $this->password_services->get_referer_url() );
[355] Fix | Delete
exit();
[356] Fix | Delete
}
[357] Fix | Delete
[358] Fix | Delete
$password = wp_unslash( $_POST['post_password'] ); // phpcs:ignore -- not sanitize password because we allow all character.
[359] Fix | Delete
[360] Fix | Delete
$this->password_services->handle_after_enter_password_in_password_form( $post_id, $password );
[361] Fix | Delete
}
[362] Fix | Delete
[363] Fix | Delete
/**
[364] Fix | Delete
* Generate action URL.
[365] Fix | Delete
*
[366] Fix | Delete
* @param string $action_url Action URL.
[367] Fix | Delete
*
[368] Fix | Delete
* @return string Action URL after generated.
[369] Fix | Delete
*/
[370] Fix | Delete
public function ppw_core_get_ppf_action_url( $action_url ) {
[371] Fix | Delete
$_get = wp_unslash( $_GET ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- We no need to handle nonce verification for render UI request.
[372] Fix | Delete
if ( ! ppw_core_get_setting_type_bool_by_option_name( PPW_Constants::USE_CUSTOM_FORM_ACTION, PPW_Constants::MISC_OPTIONS ) ) {
[373] Fix | Delete
return $action_url;
[374] Fix | Delete
}
[375] Fix | Delete
[376] Fix | Delete
$callback_value = rawurlencode( apply_filters( PPW_Constants::HOOK_CALLBACK_URL, get_permalink() ) );
[377] Fix | Delete
$url = add_query_arg(
[378] Fix | Delete
array(
[379] Fix | Delete
'action' => 'ppw_postpass',
[380] Fix | Delete
'type' => 'individual',
[381] Fix | Delete
PPW_Constants::CALL_BACK_URL_PARAM => $callback_value,
[382] Fix | Delete
),
[383] Fix | Delete
''
[384] Fix | Delete
);
[385] Fix | Delete
[386] Fix | Delete
if ( isset( $_get['ppws'] ) ) {
[387] Fix | Delete
$url = add_query_arg( 'ppws', $_get['ppws'], $url );
[388] Fix | Delete
}
[389] Fix | Delete
[390] Fix | Delete
return $url;
[391] Fix | Delete
}
[392] Fix | Delete
[393] Fix | Delete
/**
[394] Fix | Delete
* Set cookie time for password.
[395] Fix | Delete
*
[396] Fix | Delete
* @param integer $time Expired time of a cookie.
[397] Fix | Delete
*
[398] Fix | Delete
* @return integer
[399] Fix | Delete
*/
[400] Fix | Delete
public function set_cookie_time( $time ) {
[401] Fix | Delete
if ( ! isset( $_GET['ppws'] ) || '1' !== $_GET['ppws'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- We no need to handle nonce verification for set cookie function, because already handle in others password checking function.
[402] Fix | Delete
return $time;
[403] Fix | Delete
}
[404] Fix | Delete
[405] Fix | Delete
return 0;
[406] Fix | Delete
}
[407] Fix | Delete
[408] Fix | Delete
/**
[409] Fix | Delete
* Set cookie time for password.
[410] Fix | Delete
*
[411] Fix | Delete
* @param string $form_action Form action URL.
[412] Fix | Delete
*
[413] Fix | Delete
* @return integer
[414] Fix | Delete
*/
[415] Fix | Delete
public function set_sitewide_form_action( $form_action ) {
[416] Fix | Delete
$_get = wp_unslash( $_GET ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- We no need to handle nonce verification for render UI function.
[417] Fix | Delete
if ( isset( $_get['ppws'] ) ) {
[418] Fix | Delete
$form_action = $form_action . '&ppws=' . $_get['ppws'];
[419] Fix | Delete
}
[420] Fix | Delete
[421] Fix | Delete
return $form_action;
[422] Fix | Delete
}
[423] Fix | Delete
[424] Fix | Delete
/**
[425] Fix | Delete
* Handle access link with ppw_ac parameter and without encoding URL.
[426] Fix | Delete
*/
[427] Fix | Delete
public function handle_access_link() {
[428] Fix | Delete
if ( ! isset( $_GET['ppw_ac'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- We no need to handle nonce verification for quick access link.
[429] Fix | Delete
return;
[430] Fix | Delete
}
[431] Fix | Delete
if ( ! is_singular() ) {
[432] Fix | Delete
return;
[433] Fix | Delete
}
[434] Fix | Delete
[435] Fix | Delete
$password = wp_unslash( $_GET['ppw_ac'] ); // phpcs:ignore -- not sanitize password because we allow all character.
[436] Fix | Delete
$post_id = get_the_ID();
[437] Fix | Delete
$permalink = get_permalink( $post_id );
[438] Fix | Delete
$current_url = apply_filters( 'ppwp_access_link', $permalink, $post_id );
[439] Fix | Delete
[440] Fix | Delete
$password_service = new PPW_Password_Services();
[441] Fix | Delete
$is_valid = $password_service->is_valid_password_from_request( $post_id, $password );
[442] Fix | Delete
[443] Fix | Delete
if ( $is_valid ) {
[444] Fix | Delete
// Bypass single password.
[445] Fix | Delete
add_filter( 'post_password_required', '__return_false', 50 );
[446] Fix | Delete
}
[447] Fix | Delete
}
[448] Fix | Delete
[449] Fix | Delete
/**
[450] Fix | Delete
* Validate password with "No Reload Page" Option.
[451] Fix | Delete
*/
[452] Fix | Delete
public function ppw_validate_password() {
[453] Fix | Delete
if ( isset( $_POST['nonce'] ) && ! wp_verify_nonce( $_POST['nonce'], 'ppw_password_nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash -- We no need to sanitize here
[454] Fix | Delete
wp_send_json(
[455] Fix | Delete
array(
[456] Fix | Delete
'success' => false,
[457] Fix | Delete
'message' => 'Cookie nonce is invalid',
[458] Fix | Delete
),
[459] Fix | Delete
403
[460] Fix | Delete
);
[461] Fix | Delete
wp_die();
[462] Fix | Delete
}
[463] Fix | Delete
if ( ! isset( $_POST['post_password'] ) ) {
[464] Fix | Delete
wp_send_json(
[465] Fix | Delete
array(
[466] Fix | Delete
'success' => false,
[467] Fix | Delete
'message' => 'Password doest not exist',
[468] Fix | Delete
),
[469] Fix | Delete
400
[470] Fix | Delete
);
[471] Fix | Delete
wp_die();
[472] Fix | Delete
}
[473] Fix | Delete
if ( empty( $_POST['post_id'] ) ) {
[474] Fix | Delete
wp_send_json(
[475] Fix | Delete
array(
[476] Fix | Delete
'success' => false,
[477] Fix | Delete
'message' => 'Post ID is empty',
[478] Fix | Delete
),
[479] Fix | Delete
400
[480] Fix | Delete
);
[481] Fix | Delete
wp_die();
[482] Fix | Delete
}
[483] Fix | Delete
$post_id = absint( $_POST['post_id'] );
[484] Fix | Delete
$password = wp_unslash( $_POST['post_password'] ); // phpcs:ignore -- we allow all value for password
[485] Fix | Delete
[486] Fix | Delete
// Not check password if post does not exist.
[487] Fix | Delete
$post = get_post( $post_id );
[488] Fix | Delete
if ( empty( $post ) ) {
[489] Fix | Delete
wp_send_json(
[490] Fix | Delete
array(
[491] Fix | Delete
'success' => false,
[492] Fix | Delete
'message' => 'Post not found',
[493] Fix | Delete
),
[494] Fix | Delete
400
[495] Fix | Delete
);
[496] Fix | Delete
wp_die();
[497] Fix | Delete
}
[498] Fix | Delete
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function