更改购物车中的订用产品WooCommerce的注册费

时间:2020-04-16 作者:moneeb

我正在这样改变购物车中产品的价格

   add_action(\'woocommerce_before_calculate_totals\', \'set_custom_price\',1000,1);
    function set_custom_price($cart_obj) {
        foreach ($cart_obj->get_cart() as $key => $value) {

        if($value[\'alredy_have_number\'] == true) {
             $value[\'data\']->set_price(0.90);
        }
      }
   }
它对经常性价格很好,但我想更改订阅产品的注册费。我可以使用什么函数或挂钩来实现这一点?

1 个回复
最合适的回答,由SO网友:mujuonly 整理而成
add_action( \'woocommerce_before_calculate_totals\', \'change_subscription_signup_fee\', 1000, 1 );
function change_subscription_signup_fee( $cart ) {
    if (is_admin() && !defined(\'DOING_AJAX\'))
        return;

    if ( did_action( \'woocommerce_before_calculate_totals\' ) >= 2 )
        return;

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {

        // Check that product custom cart item data "alredy_have_number" exist and is true
        if( isset($cart_item[\'alredy_have_number\']) && $cart_item[\'alredy_have_number\'] ) {


            // Check if subscription products
            if ( in_array( $cart_item[\'data\']->get_type(), [\'subscription\', \'subscription_variation\']) ) {
                // Change subscription Sign up fee
                $cart_item[\'data\']->update_meta_data(\'_subscription_sign_up_fee\', 0.90);
            }
        }
    }
}

相关推荐

在主机的PHP升级后开始收到警告消息

我使用的儿童主题是2122(客户总是对的)。我最近开始在仪表板顶部和仪表板的Jetpack面板上看到以下警告机器人:“警告:在第81行的/home/leytongr/public\\u html/wp-content/plugins/theme-logo-plugin/themelogo.PHP中使用未定义的常量register\\u设置-假定“register\\u设置”(这将在PHP的未来版本中引发错误)。”这是从第80行开始的代码,您将看到我在这里提出查询的原因:function tl_init()