【问题标题】:Woocommerce, add fee when user selects an option in checkoutWoocommerce,当用户在结帐时选择一个选项时增加费用
【发布时间】:2018-10-03 08:19:59
【问题描述】:

我有一个支付网关(银行),可以选择分期付款 当用户选择一个选项时,它应该更新结帐总额并收取费用(购物车总额 * 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>

【问题讨论】:

  • 看看this answer
  • 但是当用户更改它时,我如何获得#piraeusbank_gateway-card-doseis 值(因为必须根据该值计算附加费用)

标签: woocommerce hook-woocommerce


【解决方案1】:

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

您需要添加代码(据我所知,我正在尝试 $_POST['piraeusbank_gateway-card-doseis'] 这是错误的) 在主题的function.php中

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'])) {
...

【讨论】:

  • 你能更详细地解释一下你的代码我们把这段代码放在哪里吗
猜你喜欢
  • 1970-01-01
  • 2020-09-08
  • 2011-12-05
  • 2021-11-05
  • 1970-01-01
  • 2021-07-08
  • 2019-09-26
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多