仅显示WooCommerce单产品页面中特定自定义字段值的文本



我正在尝试显示自定义文本'仅在单个产品页面上登录用户',但仅在$wpdb->postmetametafield <时才可见。strong> 'show' 有值 'yes' ,来自当前 'post_id'

我找不到正确的SQL查询来实现当前产品 POST_ID 加载单个产品页面时。

这是我的代码:

function show_text() {
    global $wpdb;   
    $post_id_number = get_the_id();
    $meta = $wpdb->get_results( "select * from $wpdb->wp_postmeta WHERE meta_key = 'show' AND meta_value = 'yes'" );
    if ( $meta == TRUE ) {
        echo '<p>PRice is only visible for logged in users</p>';
    }
}
add_action( 'woocommerce_before_single_product', 'show_text' );

您只需使用WordPress get_post_meta()功能:

add_action( 'woocommerce_before_single_product', 'show_custom_text' );
function show_custom_text() {
    global $post;
    if ( get_post_meta( $post->ID, 'show', true ) == 'yes' && ! is_user_logged_in() ) {
        echo '<p>PRice is only visible for logged in users</p>';
    }
}

代码在您的活动子主题(或活动主题(的function.php文件中。它应该起作用。

最新更新