【问题标题】:Show text only for a specific custom field value in Woocommerce single product pages在 Woocommerce 单一产品页面中仅显示特定自定义字段值的文本
【发布时间】:2018-04-29 05:34:44
【问题描述】:

我正在尝试在单个产品页面上显示自定义文本“仅登录用户可见的价格”,但仅当$wpdb->postmetametafield @987654323 @ 的值为 'yes',来自当前的 'post_id'

在加载单个产品页面时,我找不到执行当前产品 post_id 的正确 SQL 查询。

这是我的代码:

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' );

【问题讨论】:

  • 更新:尝试这个查询,但没有成功:$meta = $wpdb-&gt;get_row( "(select * from $wpdb-&gt;wp_postmeta WHERE meta_key = 'show' AND meta_value = 'yes') AND ( SELECT * FROM $wpdb-&gt;wp_posts WHERE ID = 1291 )" );

标签: php sql wordpress woocommerce metadata


【解决方案1】:

您可以通过这种方式简单地使用 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 文件中。它应该可以工作。

【讨论】:

  • 嗨 Loic,正在尝试代码并且效果很好。谢谢你。这比我的方法简单:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-12
  • 2019-01-09
  • 2021-03-04
  • 2018-11-24
  • 2020-12-04
  • 2021-04-28
相关资源
最近更新 更多