为了账号安全,请及时绑定邮箱和手机立即绑定

向WooCommerce中的非会员显示会员折扣价

向WooCommerce中的非会员显示会员折扣价

PHP
holdtom 2021-04-30 10:12:41
在WooCommerce中,我有3个会员等级(银,金和白金),并且为更高的会员等级应用了更高的折扣率。我想向所有人显示4种不同的价格(非会员,白银,黄金和白金),这样他们知道加入会员后可以在每种产品上节省多少。例如:常规价格:US $ 100银卡会员:$ 90金卡会员:$ 80白金会员:70美元我尝试了下面的代码:function bsc_wc_memberships_members_only_product_price() {    global $product;    $user = wp_get_current_user();    if ( !wc_memberships_is_user_active_member($user->ID, 'test') ) {        $id = $product->get_id();        $discount = get_post_meta( $id, 'member_price', true );        $price = $product->get_price();        echo 'Member price: $'.$total = $price - $discount;    }}add_action( 'woocommerce_before_add_to_cart_button', 'bsc_wc_memberships_members_only_product_price' );不幸的是,它并没有真正起作用……任何建议将不胜感激。
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

有一个明显的错误:


echo 'Member price: $'.$total = $price - $discount;

而是应该只是:


echo 'Member price: $'. $price - $discount;

甚至更好:


echo 'Member price: '. wc_price( $price - $discount );

但是随着价格的显示,您需要使用一些不同和更完整的东西,例如:


add_action( 'woocommerce_before_add_to_cart_button', 'bsc_wc_memberships_members_only_product_price' );

function bsc_wc_memberships_members_only_product_price() {

    global $product;


    if ( ! wc_memberships_is_user_active_member( get_current_user_id(), 'test' ) ) {


        $discount     = wc_get_price_to_display( $product, array('price' => $product->get_meta('member_price') ) );

        $price        = wc_get_price_to_display( $product );


        $silver_price = $price - $discount;


        echo '<span class="silver-price">' . __('Member price') . ': ' . wc_price( $silver_price ) . '</span>';

    }

}

检查数据库表member_price下该产品的元键上是否确实存在自定义字段元值wp_postmeta。


代码进入您的活动子主题(或活动主题)的function.php文件中。它应该更好地工作。


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信