【问题标题】:WooCommerce Deposits: enabele deposit for certain product IDsWooCommerce 存款:为某些产品 ID 启用存款
【发布时间】:2022-01-02 16:57:45
【问题描述】:

我正在尝试禁用使用插件 WooComerce Deposit 的某些产品 ID。

过滤器是wc_deposits_product_enable_deposit:它控制是否为产品启用存款。通过这个过滤器的变量是$enabled(布尔值)和$product_id

我已经尝试过代码

add_filter('wc_deposits_product_enable_deposit','wcdp_custom_wc_deposits_disable_productid',10,3);
function wcdp_custom_wc_deposits_disable_productid($enabled , $product_id) {
    
    $product = wc_get_product( $product_id );
        
    if ($product = 6283) {
        $enabled = false;
    }
    return $enabled;
}

很遗憾没有得到想要的结果。任何建议将不胜感激。

【问题讨论】:

    标签: wordpress woocommerce product


    【解决方案1】:

    您的代码包含一些错误

    • wc_deposits_product_enable_deposit:控制是否为产品启用存款。通过此过滤器的变量是$enabled(布尔值)和$product_id
    • 您将$product 与一个id 进行比较,而这应该是$product_id
    • 因此没有必要使用wc_get_product( $product_id )
    • 要将其应用于多个产品 ID,您可以使用 in_array(), 这允许您一次检查多个产品 ID

    所以你得到:

    function filter_wc_deposits_product_enable_deposit( $enabled, $product_id ) {
        // Products IDs, several can be added, separated by a comma
        $product_ids = array( 6283, 30 );
        
        // Checks if a value exists in an array
        if ( in_array( $product_id, $product_ids ) ) {
            $enabled = false;
        }
        
        return $enabled;
    }
    add_filter( 'wc_deposits_product_enable_deposit', 'filter_wc_deposits_product_enable_deposit', 10, 2 );
    

    【讨论】:

    • 感谢这有帮助,但不幸的是由于某些原因对我不起作用。存款插件功能仍然存在于结帐页面。
    • @Franceoutdoors 如您在问题中所述“它控制是否为产品禁用存款” - 换句话说,如果您想将此应用于结帐页面你将不得不使用不同的钩子。但是,您的问题中没有提到这一点
    • 好的,我明白了。我虽然这个钩子可以在我正在寻找的给定产品的结帐页面上工作。那么有什么想法吗?
    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2015-04-16
    • 2021-11-01
    • 2021-06-12
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多