2
我在woocommerce 3個自定義字段:Woocommerce自定義字段不節能
物質的參考號,發票號和soliciter處理的情況下(代碼接下來,如果你不想看到它,只需向下滾動,它不是那麼重要)
add_action('woocommerce_after_order_notes', 'matter_reference_number_func');
function matter_reference_number_func($checkout) {
echo '<div id="matter_ref"><h3>'.__('Matter reference number').'</h3>';
woocommerce_form_field('matter_reference_number', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'placeholder' => __('Matter reference number'),
), $checkout->get_value('matter_ref_num'));
echo '</div>';
}
add_action('woocommerce_after_order_notes', 'invoice_number_func');
function invoice_number_func($checkout) {
echo '<div id="inv_num"><h3>'.__('Invoice number').'</h3>';
woocommerce_form_field('invoice_number', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'placeholder' => __('Invoice number'),
), $checkout->get_value('invoice_num'));
echo '</div>';
}
add_action('woocommerce_after_order_notes', 'sol_deal_func');
function sol_deal_func($checkout) {
echo '<div id="sol_deal"><h3>'.__('Solicitor dealing with matter').'</h3>';
woocommerce_form_field('matter_reference_number', array(
'type' => 'text',
'class' => array('my-field-class form-row-wide'),
'placeholder' => __('Solicitor dealing with matter'),
), $checkout->get_value('sol_deal'));
echo '</div>';
}
但是現在,當我嘗試它們不會出現在電子郵件中的值保存到客戶端還是在管理,甚至在確認頁面。根據the docs這應該足以做到這一點;但它沒有。
/**
* Update the order meta with field value
**/
add_action('woocommerce_checkout_update_order_meta', 'matter_ref_num_checkout_field_update_order_meta');
function matter_ref_num_checkout_field_update_order_meta($order_id) {
if ($_POST['matter_ref_num']) update_post_meta($order_id, 'Matter Reference Number', esc_attr($_POST['matter_ref_num']));
}
/**
* Update the order meta with field value
**/
add_action('woocommerce_checkout_update_order_meta', 'invoice_num_checkout_field_update_order_meta');
function invoice_num_checkout_field_update_order_meta($order_id) {
if ($_POST['invoice_num']) update_post_meta($order_id, 'Invoice Number', esc_attr($_POST['invoice_num']));
}
/**
* Update the order meta with field value
**/
add_action('woocommerce_checkout_update_order_meta', 'sol_deal_checkout_field_update_order_meta');
function sol_deal_checkout_field_update_order_meta($order_id) {
if ($_POST['sol_deal']) update_post_meta($order_id, 'Solicitor Dealing With Matter', esc_attr($_POST['sol_deal']));
}