问题描述
根据 Change product prices via a hook in WooCommerce 3+ 答案代码,我为 WooCommerce 中的动态价格标记创建了一个片段。
它似乎可以工作,但也许代码可以更小或更佳.... 此外,我正在测试的产品有 6% 的销售价格,但我的代码片段只有 5% 的销售价格。 我不知道为什么。
此代码段适用于常规和销售价格以及可变产品。 而且它也可能会帮助其他人,因为 woocommerce 中没有内置产品价格加价。 这是片段:
// Variable
add_filter('woocommerce_product_variation_get_regular_price','custom_price',99,2 );
add_filter('woocommerce_product_variation_get_price',2 );
add_filter( 'woocommerce_product_get_sale_price','sale_custom_price',2 );
// Variations (of a variable product)
add_filter('woocommerce_variation_prices_price','custom_variation_price',3 );
add_filter('woocommerce_variation_prices_regular_price',3 );
add_filter( 'woocommerce_variation_prices_sale_price','sale_variation_custom_price',3 );
function custom_price( $price,$product ) {
// Delete product cached price (if needed)
wc_delete_product_transients($product->get_id());
$fdp = $price + 17;
$mntpour = $fdp * (15/100);
$mrkp = $fdp + $mntpour;
return $mrkp;
}
function sale_custom_price( $price,$product ) {
// Delete product cached price (if needed)
wc_delete_product_transients($product->get_id());
$fdp = $price + 17;
$mntpour = $fdp * (15/100);
$mrkp = $fdp + $mntpour;
return $mrkp;
}
function custom_variation_price( $price,$variation,$product ) {
// Delete product cached price (if needed)
wc_delete_product_transients($variation->get_id());
$fdp = $price + 17;
$mntpour = $fdp * (15/100);
$mrkp = $fdp + $mntpour;
return $mrkp;
}
function sale_variation_custom_price( $price,$product ) {
// Delete product cached price (if needed)
wc_delete_product_transients($variation->get_id());
$fdp = $price + 17;
$mntpour = $fdp * (15/100);
$mrkp = $fdp + $mntpour;
return $mrkp;
}
fdp 是 17 美元的运费 mntpour 是 15% 的价格加价 mrkp 是最终的总价格加价。
我希望有人能帮我找出为什么我在这段代码中遗漏了 1% 销售和正常价格。 您可以将此代码段粘贴到子主题functions.PHP 中并在您的产品上进行测试。
已经谢谢了!!!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)