显示WooCommerce可变产品的销售差异节省金额

时间:2019-04-20 20:58:18

标签: php wordpress woocommerce hook-woocommerce variations

我有一个自定义插件,用于显示配件。我想显示主要产品和附件的总节省额。如果主产品是简单产品,则我的储蓄有效;如果主产品是可变产品,则储蓄显示null。有人可以更新我的代码吗,请

我尝试使用此代码来显示保存,但是它仅适用于简单的产品

env

我希望将主要产品的附件显示为总节省额

1 个答案:

答案 0 :(得分:1)

我已经重新检查了您的代码,因为它有点过时和过时了…在可变产品上,有2个价格,一个价格范围和所选的变化价格,因此您需要完全不同的东西来显示所选变化价格的节省金额

我还添加了节省百分比(如果不需要,可以将其删除)。

// For simple products
add_action( 'woocommerce_single_product_summary', 'simple_product_saving_amount', 11 );
function simple_product_saving_amount() {
    global $product;

    if( $product->is_type('simple') && $product->is_on_sale() ) {
        $regular_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_regular_price() ) );
        $active_price  = (float) wc_get_price_to_display( $product, array('price' => $product->get_sale_price() ) );

        $saved_amount  = $regular_price - $active_price;
        $percentage    = round( $saved_amount / $regular_price * 100 );

        echo '<p id="saving_total_price">'. __("You Save") .': ' . wc_price($saved_amount) . ' ('.$percentage.'%)</p>';
    }
}

// For product variations (on variable products)
add_filter( 'woocommerce_available_variation', 'variable_product_saving_amount', 10, 3 );
function variable_product_saving_amount( $data, $product, $variation ) {

    if( $variation->is_on_sale() ) {
        $saved_amount  = $data['display_regular_price'] - $data['display_price'];
        $percentage    = round( $saved_amount / $data['display_regular_price'] * 100 );

        $data['price_html'] .= '<p id="saving_total_price">'. __("You Save") .': ' . wc_price($saved_amount) . ' ('.$percentage.'%)</p>';
    }
    return $data;
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。