繁体   English   中英

Woocommerce function 在订单编辑页面显示此自定义字段值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM