Woocommerce,当用户在结帐时选择一个选项时添加费用
Woocommerce, add fee when user selects an option in checkout
我有一个支付网关(银行),它有 select 分期付款选项
当用户选择一个选项时,它应该更新结账总额并收取费用(购物车总额 * 0.12 *installments/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")
你需要添加代码(据我所知,我正在尝试 $_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'])) {
...
我有一个支付网关(银行),它有 select 分期付款选项 当用户选择一个选项时,它应该更新结账总额并收取费用(购物车总额 * 0.12 *installments/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")
你需要添加代码(据我所知,我正在尝试 $_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'])) {
...