代码之家  ›  专栏  ›  技术社区  ›  melvin

在Woocommerce中添加自定义字段值作为购物车非应税费用

  •  1
  • melvin  · 技术社区  · 8 年前

    我在checkout中有一个自定义字段,用于向购物车添加价格。

    $woocommerce->cart->add_fee($price_info['label'], $fee, $taxable, $tax_class);
    

    一切正常。但我如何使其不纳税?

    1 回复  |  直到 8 年前
        1
  •  3
  •   LoicTheAztec    8 年前

    要使费用不征税,您需要将第3个参数设置为false,因此您的代码为:

    WC()->cart->add_fee( $price_info['label'], $fee );
    

    第三个参数的默认值为 false ,因此无需纳税。查看其源代码:

    /**
     * Add additional fee to the cart.
     *
     * @uses WC_Cart_Fees::add_fee
     * @param string $name      Unique name for the fee. Multiple fees of the same name cannot be added.
     * @param float  $amount    Fee amount (do not enter negative amounts).
     * @param bool   $taxable   Is the fee taxable? (default: false).
     * @param string $tax_class The tax class for the fee if taxable. A blank string is standard tax class. (default: '').
     */
    
    public function add_fee( $name, $amount, $taxable = false, $tax_class = '' ) {
        $this->fees_api()->add_fee( array(
            'name'      => $name,
            'amount'    => (float) $amount,
            'taxable'   => $taxable,
            'tax_class' => $tax_class,
        ) );
    }
    

    现在如果您使用 负费用 (即购物车折扣), 应纳税 即使您将其设置为 错误 .