我在woocommerce中为结帐做了一个自定义字段:
add_action( 'woocommerce_after_checkout_billing_form', 'my_custom_checkout_field' );
function my_custom_checkout_field( $checkout ) {
woocommerce_form_field( 'forhandler-kode', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'label' => __('Har du fået en kode fra en butik? Skriv den her! (IKKE kuponkode)'),
'placeholder' => __('Indtast din kode'),
'required' => false,
), $checkout->get_value( 'forhandler-kode' ));
}
现在,如果用户输入特定代码,我会尝试给予用户折扣。在测试如何抓住该字段时,即使只是检查字段是否已满,我甚至无法使用以下代码实现此目的:
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( $_POST['forhandler-kode'] ) {
$percentage = -0.1;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Forhandlerkode Rabat', $surcharge, true, '' );
}
}
我在没有if语句的情况下进行了测试,代码本身运行正常。我的问题只是说:我无法抓住并检查自定义字段的值。的var_dump($ _ POST [' forhandler-KODE']);返回NULL
为了澄清,我知道我可以使用优惠券,但是,我的雇主需要这样。