当使用帖子类别“A”(或“B”或“C”)创建新的 Wordpress 帖子时,我需要使用 PHP 挂钩自动检查 Woocommerce-Memberships禁用限制复选框。这将允许所有查看者不受限制地查看帖子。
复选框图片[1]
我尝试向“save_post”挂钩添加一个操作,将“yes”的“_wc_memberships_force_public”值添加到 {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;
}
}
}
我希望所有查看者都可以不受限制地查看帖子内容,无论此框是自动选中还是手动选中。相反,它仅在手动选中该框时才有效。