在 WooCommerce 中向非会员显示会员折扣价
Display member discounted prices to non-members in WooCommerce
在 WooCommerce 中,我有 3 个会员等级(白银、黄金和白金),我为更高的会员等级应用了更高的折扣率。
我想向每个人展示 4 种不同的价格(非会员、白银、黄金和白金),以便他们知道如果他们加入会员,他们可以在每种产品上节省多少钱。例如:
- 原价:100 美元
- 银卡会员:90 美元
- 金牌会员:80 美元
- 白金会员:70 美元
我试过了the code below:
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' );
但不幸的是它并没有真正起作用...任何建议将不胜感激。
有一个明显的错误:
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>';
}
}
正在检查 wp_postmeta
数据库 table 下此产品的 member_price
元键是否确实存在自定义字段元值 table。
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该更好用。
在 WooCommerce 中,我有 3 个会员等级(白银、黄金和白金),我为更高的会员等级应用了更高的折扣率。
我想向每个人展示 4 种不同的价格(非会员、白银、黄金和白金),以便他们知道如果他们加入会员,他们可以在每种产品上节省多少钱。例如:
- 原价:100 美元
- 银卡会员:90 美元
- 金牌会员:80 美元
- 白金会员:70 美元
我试过了the code below:
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' );
但不幸的是它并没有真正起作用...任何建议将不胜感激。
有一个明显的错误:
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>';
}
}
正在检查 wp_postmeta
数据库 table 下此产品的 member_price
元键是否确实存在自定义字段元值 table。
代码进入您的活动子主题(或活动主题)的 function.php 文件。它应该更好用。