wordpress WooCommerce存款:启用某些产品ID的存款

g6ll5ycj  于 2023-02-11  发布在  WordPress
关注(0)|答案(1)|浏览(177)

我试图禁用某些产品ID的使用插件WooComerce存款.
过滤器为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;
}

不幸的是没有预期的结果。任何建议都将不胜感激。

unftdfkk

unftdfkk1#

您的代码包含一些错误

  • wc_deposits_product_enable_deposit:控制是否为产品启用和禁用存款。通过此过滤器的变量为$enabled(布尔值)和$product_id
  • $product与id进行比较,而id应该是$product_id
  • 因此,没有必要使用wc_get_product( $product_id )
  • 要对多个产品ID应用此功能,可以使用i n_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 );

相关问题