Как автоматически установить флажок Woocommerce Memberships «Отключить ограничения» при создании нового сообщения в блоге - PullRequest
0 голосов
/ 21 июня 2019

Когда новая запись Wordpress создается с использованием категории сообщений "A" (или "B" или "C"), мне нужно автоматически установить флажок Woocommerce-Memberships Отключить ограничения с помощью ловушки PHP , Это позволит всем зрителям неограниченный доступ для просмотра поста.

изображение флажка [1]

Я попытался добавить действие в хук "save_post", чтобы добавить значение "_wc_memberships_force_public", равное "yes", в таблицу {wp_prefix} _post_meta, однако при просмотре сообщения флажок будет отображаться как проверенный, поэтому это все еще ограничено. Когда я удаляю действие (комментируя его из моего файла functions.php) и вручную проверяю флажок Отключить ограничения перед сохранением сообщения, сообщение можно просмотреть без ограничений (как и ожидалось).

add_action( 'save_post', 'action_save_post_force_public', 99, 3);

function action_save_post_force_public($post_id, $post, $is_update){
         $already_forced = get_post_meta( $post_id, '_wc_memberships_force_public', $single=true );
         if ( 'yes' === $already_forced ){ return; }

         $categories = get_the_category( $post_id );

         if ( empty( $categories ) ){ return; }

         $force_public_slugs = array('A', 'B', 'C');

         foreach ( $categories as $term ){
             if ( in_array( $term->slug, $force_public_slugs ) ){
                 update_post_meta( $post_id, '_wc_memberships_force_public', 'yes' );
                 break;
             }
         }
}

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

...