Продукты woo-commerce, защищенные паролем, отображаются без каких-либо ограничений для некоторых пользователей.

Я создал несколько «защищенных паролем» продуктов из серверной части. Теперь я хочу показать эти продукты, защищенные паролем, некоторым пользователям без каких-либо ограничений пароля. Для остальных пользователей они должны попросить пароль для просмотра продукта. Это возможно. Пожалуйста, дайте мне знать, если есть решение.

В краткосрочной перспективе необходимо изменить параметры видимости WordPress из functions.php

Спасибо,
Satya

1

Решение

После некоторого исследования встроенной функциональности 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' );

Надеюсь, что это может помочь для некоторых других, которые имеют такое же требование. Я могу использовать этот код для некоторых конкретных пользователей или определенных категорий и т. Д.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]