【发布时间】:2016-10-24 14:03:23
【问题描述】:
您好,我对 woocommerce 中的自定义结帐字段有疑问。 我在结帐表单中创建了一个自定义字段,一切正常。该字段包含客户卡号。我还设法将字段值(第一次输入后)保存在 wp-usermeta 中,这样它不仅与订单一起出现,而且与客户详细信息一起保存。
现在我想做以下事情。一旦返回商店的注册客户进入结帐表格,新字段(如果不是空的)会自动显示,而不是每次都要求客户输入他们的卡号。
我添加到我的子主题 fucntions.php 以在结帐页面中显示自定义字段的原始函数是:
/**
* Add the field to the checkout
*/
add_action ('woocommerce_after_order_notes', 'checkout_w55_card_number' );
function checkout_w55_card_number( $checkout ) {
echo '<div id="checkout_w55_card_number"><h2>' . __('N. tessera W55') . '</h2>';
woocommerce_form_field( 'w55_card_number', array(
'type' => 'text',
'class' => array('w55-card-number-class form-row-wide'),
'label' => __('Inserisci n. tessera W55'),
'placeholder' => __('Inserisci numero'),
), $checkout->get_value( 'w55_card_number' ));
echo '</div>';
}
我因此尝试以这种方式重新安排它,但它不起作用
add_action ('woocommerce_after_order_notes', 'checkout_w55_card_number' );
function checkout_w55_card_number( $checkout ) {
//extracts the value of the w55_card_number field
$w55_card = get_user_meta($user_id, 'w55_card_number', true);
//condition is the w55_card_number field is empty or not
if ( !empty($w55_card) ) : echo $w55_card; else :
echo '<div id="checkout_w55_card_number"><h2>' . __('N. tessera W55') . '</h2>';
woocommerce_form_field( 'w55_card_number', array(
'type' => 'text',
'class' => array('w55-card-number-class form-row-wide'),
'label' => __('Inserisci n. tessera W55'),
'placeholder' => __('Inserisci numero'),
), $checkout->get_value( 'w55_card_number' ));
echo '</div>';
endif;
}
有什么建议吗?
【问题讨论】:
标签: woocommerce customization checkout