WooCommerce动态定价-排除促销产品

时间:2018-07-26 12:08:55

标签: php wordpress woocommerce

我正在使用WooCommerce Dynamic定价,并试图使其在我的网站上针对所有产品运行,但不包括正在销售的产品。

这是我尝试过的代码,但是根本无法正常工作。这是WooCommerce动态定价文档建议的代码(这破坏了我的网站)

add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

function is_product_eligible( $eligible, $product, $discounter_name, $discounter_object ) {
    remove_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

    if ( $product->is_on_sale() ) {
        $eligible = false;
    }

    add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

    return $eligible;
}

这是我尝试的代码,它不会破坏我的网站,但是不起作用:

function is_product_eligible( $eligible, $product, $discounter_name, $discounter_object ) {

    if ( $product->is_on_sale() ) {
        $eligible = false;
    }

    add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

    return $eligible;
}

1 个答案:

答案 0 :(得分:0)

经过一些研究,这里是解决方案。它本身的代码破坏了我的网站,但这是因为我的数据库已损坏。使用新的数据库,代码没有破坏我的网站,但是没有按预期工作。因此,只需稍作改动,即可排除销售商品及其变体的代码:

add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

function is_product_eligible( $eligible, $product, $discounter_name, $discounter_object ) {
remove_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

        if ( $product->get_sale_price() ) {
            $eligible = false;
        }

        add_filter( 'woocommerce_dynamic_pricing_process_product_discounts', 'is_product_eligible', 10, 4 );

        return 

$eligible;
}