Woocommerce,当用户在结帐时选择一个选项时添加费用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Woocommerce,当用户在结帐时选择一个选项时添加费用相关的知识,希望对你有一定的参考价值。

我有一个支付网关(银行),它有一个选择分期付款当用户选择一个选项时,它应该更新结账总额的费用(购物车总数* 0.12 *分期付款/ 12)

<p class="form-row woocommerce-validated">
        <label for="piraeusbank_gateway-card-doseis">Επιλογή Δόσεων <span class="required">*</span></label>
                    <select id="piraeusbank_gateway-card-doseis" name="piraeusbank_gateway-card-doseis" class="input-select wc-credit-card-form-card-doseis">
                    <option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option></select>         
    </p>
答案

为了增加费用(一般)LoicTheAztec的答案是有效的。但为了获得分期付款的价值(“piraeusbank_gateway-card-doseis”)

你需要在主题的function.php中添加代码(通过我的unknowledge,我在尝试$ _POST ['piraeusbank_gateway-card-doseis']这是错误的)

add_action( 'woocommerce_cart_calculate_fees', 'custom_paypal_additional_fee', 20, 1 );
function custom_paypal_additional_fee( $cart ) {
            if ( isset($_POST['post_data'])) {
                parse_str( $_POST['post_data'], $post_data );
            } else {
                 $post_data = $_POST; // fallback for final checkout (non-ajax)
            }
            if (isset($post_data['piraeusbank_gateway-card-doseis'])) {
...

以上是关于Woocommerce,当用户在结帐时选择一个选项时添加费用的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 中特定支付网关的结帐附加字段

Woocommerce 通过 ajax 在结帐时更新运输方式

当 WooCommerce 购物车包含虚拟产品时,如何隐藏结帐日期选择器?

仅在可见时才需要 Woocommerce 结帐字段

隐藏 WooCommerce 结帐字段后删除所需的验证

在“运送到其他地址?”时为特定用户角色添加费用?已在 WooCommerce 结帐时检查