![](/img/trans.png)
[英]Get the custom field value in Woocommerce Edit Order pages custom metabox
[英]Woocommerce function to display this custom field value on the order edit page
我们添加了将增值税号添加到结帐页面的选项,它在结帐页面、管理员和电子邮件中显示正常,但不会保存到自定义字段。
这是代码:
/**
* VAT Number in WooCommerce Checkout
*/
function wpdesk_vat_field( $checkout ) {
echo '<div id="wpdesk_vat_field"><h2>' . __('Nakup na podjetje') . '</h2>';
woocommerce_form_field( 'vat_number', array(
'type' => 'text',
'class' => array( 'vat-number-field form-row-wide') ,
'label' => __( 'V kolikor nakupujete kot podjetje, vnesite ID za DDV' ),
'placeholder' => __( 'Vnesite ID za DDV' ),
), $checkout->get_value( 'vat_number' ));
echo '</div>';
}
add_action( 'woocommerce_checkout_update_order_meta', 'wpdesk_checkout_vat_number_update_order_meta' );
/**
* Save VAT Number in the order meta
*/
function wpdesk_checkout_vat_number_update_order_meta( $order_id ) {
if ( ! empty( $_POST['vat_number'] ) ) {
update_post_meta( $order_id, '_vat_number', sanitize_text_field( $_POST['vat_number'] ) );
}
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'wpdesk_vat_number_display_admin_order_meta', 10, 1 );
/**
* Display VAT Number in order edit screen
*/
function wpdesk_vat_number_display_admin_order_meta( $order ) {
echo '<p><strong>' . __( 'ID za DDV', 'woocommerce' ) . ':</strong> ' . get_post_meta( $order->id, '_vat_number', true ) . '</p>';
}
add_filter( 'woocommerce_email_order_meta_keys', 'wpdesk_vat_number_display_email' );
/**
* VAT Number in emails
*/
function wpdesk_vat_number_display_email( $keys ) {
$keys['ID za DDV'] = '_vat_number';
return $keys;
}
我将此代码添加到functions.php,但增值税号未保存到订单页面上的自定义字段中。
/**
* VAT Number in WooCommerce Checkout
*/
function wpdesk_vat_field( $checkout ) {
echo '<div id="wpdesk_vat_field"><h2>' . __('Nakup na podjetje') . '</h2>';
woocommerce_form_field( 'vat_number', array(
'type' => 'text',
'class' => array( 'vat-number-field form-row-wide') ,
'label' => __( 'V kolikor nakupujete kot podjetje, vnesite ID za DDV' ),
'placeholder' => __( 'Vnesite ID za DDV' ),
), $checkout->get_value( 'vat_number' ));
echo '</div>';
}
add_action( 'woocommerce_checkout_update_order_meta', 'wpdesk_checkout_vat_number_update_order_meta' );
/**
* Save VAT Number in the order meta
*/
function wpdesk_checkout_vat_number_update_order_meta( $order_id ) {
if ( ! empty( $_POST['vat_number'] ) ) {
update_post_meta( $order_id, '_vat_number', sanitize_text_field( $_POST['vat_number'] ) );
}
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'wpdesk_vat_number_display_admin_order_meta', 10, 1 );
/**
* Display VAT Number in order edit screen
*/
function wpdesk_vat_number_display_admin_order_meta( $order ) {
echo '<p><strong>' . __( 'ID za DDV', 'woocommerce' ) . ':</strong> ' . get_post_meta( $order->id, '_vat_number', true ) . '</p>';
}
add_filter( 'woocommerce_email_order_meta_keys', 'wpdesk_vat_number_display_email' );
/**
* VAT Number in emails
*/
function wpdesk_vat_number_display_email( $keys ) {
$keys['ID za DDV'] = '_vat_number';
return $keys;
}
我正在使用您的代码,此外我还使用了woocommerce_before_order_notes
挂钩来添加文件并且对我来说工作正常。
/**
*
* VAT Number in WooCommerce Checkout
*/
add_action( 'woocommerce_before_order_notes', 'wpdesk_vat_field' );
function wpdesk_vat_field( $checkout ) {
echo '<div id="wpdesk_vat_field"><h2>' . __('Nakup na podjetje') . '</h2>';
woocommerce_form_field( 'vat_number', array(
'type' => 'text',
'class' => array( 'vat-number-field form-row-wide') ,
'label' => __( 'V kolikor nakupujete kot podjetje, vnesite ID za DDV' ),
'placeholder' => __( 'Vnesite ID za DDV' ),
), $checkout->get_value( 'vat_number' ));
echo '</div>';
}
add_action( 'woocommerce_checkout_update_order_meta', 'wpdesk_checkout_vat_number_update_order_meta' );
/**
* Save VAT Number in the order meta
*/
function wpdesk_checkout_vat_number_update_order_meta( $order_id ) {
if ( ! empty( $_POST['vat_number'] ) ) {
update_post_meta( $order_id, '_vat_number', sanitize_text_field( $_POST['vat_number'] ) );
}
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'wpdesk_vat_number_display_admin_order_meta', 10, 1 );
/**
* Display VAT Number in order edit screen
*/
function wpdesk_vat_number_display_admin_order_meta( $order ) {
echo '<p><strong>' . __( 'ID za DDV', 'woocommerce' ) . ':</strong> ' . get_post_meta( $order->id, '_vat_number', true ) . '</p>';
}
add_filter( 'woocommerce_email_order_meta_keys', 'wpdesk_vat_number_display_email' );
/**
* VAT Number in emails
*/
function wpdesk_vat_number_display_email( $keys ) {
$keys['ID za DDV'] = '_vat_number';
return $keys;
}
测试和工作。
查看
编辑订单
邮件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.