Я создал несколько «защищенных паролем» продуктов из серверной части. Теперь я хочу показать эти продукты, защищенные паролем, некоторым пользователям без каких-либо ограничений пароля. Для остальных пользователей они должны попросить пароль для просмотра продукта. Это возможно. Пожалуйста, дайте мне знать, если есть решение.
В краткосрочной перспективе необходимо изменить параметры видимости WordPress из functions.php
Спасибо,
Satya
После некоторого исследования встроенной функциональности WordPress я получил решение и оно работает.
В файле functions.php я сделал следующий код.
function password_visibility(){
$post = get_post();
if(!is_admin() && !empty($post->post_password)):
require_once ABSPATH . WPINC . '/class-phpass.php';
$hasher = new PasswordHash( 8, true );$expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
$secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $post->post_password ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );
wp_safe_redirect( wp_get_referer() );
endif;
}
add_action( 'pre_get_posts' , 'password_visibility' );
Надеюсь, что это может помочь для некоторых других, которые имеют такое же требование. Я могу использовать этот код для некоторых конкретных пользователей или определенных категорий и т. Д.
Других решений пока нет …