在WooCommerce后端中将自定义字段添加为默认值,并填充以前的订单

迈克·德维特(Mike Devitt)

我知道问题的第一部分是可能的,但尚未找到如何向后端的所有订单添加自定义字段,然后使用默认值填充该字段。

我正在寻找创建一个名为“商家标识符”的自定义字段,然后使用默认名称(例如“ Company X”)填充该字段。

我看了一下这段代码,该代码在结帐时添加了一个输入值,然后在订单摘要中显示,但是我只需要将一个字段作为自定义字段添加到后端的每个订单中。

/**
 * Process the checkout
 */
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST['billing_phone_new'] )
        wc_add_notice( __( 'Phone 2 is compulsory. Please enter a value' ), 'error' );
}


/**
 * Update the order meta with field value
 */
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );

function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ( ! empty( $_POST['billing_phone_new'] ) ) {
        update_post_meta( $order_id, 'billing_phone_new', sanitize_text_field( $_POST['billing_phone_new'] ) );
    }
}


/**
 * Display field value on the order edit page
 */
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){
    echo '<p><strong>'.__('Phone 2').':</strong> <br/>' . get_post_meta( $order->get_id(), 'billing_phone_new', true ) . '</p>';
}

一旦该自定义字段出现在所有新旧订单上,我就可以添加此字段,并将其添加为计划的CSV导出中的一列(稍后再讲-我只需要实现第一部分)。

我不确定我是否需要先在结帐时使用默认值来隐藏字段,还是不确定是否可以使用不同的方法添加显示在后端所有订单上的自定义字段。

有人能帮忙吗?

谢谢

7uc1f3r

对于新订单,您可以使用以下命令

// Update the order meta with value 
function action_woocommerce_checkout_update_order_meta( $order_id ) {
    // Meta value
    $meta_value = 'Company X';
    
    update_post_meta( $order_id, 'merchant_identifier', $meta_value );
}
add_action( 'woocommerce_checkout_update_order_meta', 'action_woocommerce_checkout_update_order_meta', 10, 1 );

// OPTIONAL (will still work without this code, this is just to show it visually)
// Display field value on the order edit page
function action_woocommerce_admin_order_data_after_billing_address( $order ) {  
    echo '<p><strong>' . __( 'Merchant Identifier', 'woocommerce') . ':</strong> ' . $order->get_meta( 'merchant_identifier' ) . '</p>';
}
add_action( 'woocommerce_admin_order_data_after_billing_address', 'action_woocommerce_admin_order_data_after_billing_address', 10, 1 );

对于现有订单,您可以执行以下功能,该功能在执行(查看任何页面-前端)后可能会被删除。

// Run once, delete afterwards
function set_meta_for_old_orders () {
    // Get ALL orders where meta key not exists
    $orders = wc_get_orders( array(
        'limit'        => -1, // Query all orders
        'meta_key'     => 'merchant_identifier', // Post meta_key
        'meta_compare' => 'NOT EXISTS', // Comparison argument
    ));
    
    if ( ! empty ( $orders ) ) {
        // Meta value
        $meta_value = 'Company X';
        
        foreach ( $orders as $order ) {
            $order->update_meta_data( 'merchant_identifier', $meta_value );
            $order->save();
        }

        echo 'Done!';
    }
}
// Call function
add_action( 'wp_footer', 'set_meta_for_old_orders' );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在WooCommerce中将自定义结帐字段值添加到客户订单注释中

来自分类Dev

WooCommerce:将自定义元添加为隐藏订单项元以供内部使用

来自分类Dev

如何用以前输入的值(如默认的WooCommerce结帐字段)填充自定义结帐字段?

来自分类Dev

如何用以前输入的值(如默认的WooCommerce结帐字段)填充自定义结帐字段?

来自分类Dev

将自定义字段数据添加到WooCommerce订单

来自分类Dev

如何在目标c中将自定义对象存储为用户默认值?

来自分类Dev

如何在altair中将自定义颜色主题设置为默认值?

来自分类Dev

将自定义字段添加到后端表单

来自分类Dev

自定义字段默认值-填充相同字段中的其他条目

来自分类Dev

在WooCommerce中将自定义字段添加到简码显示

来自分类Dev

如何在Woocommerce中将自定义字段添加到类别中?

来自分类Dev

页面加载后,自定义的Woocommerce结帐字段将恢复为默认值

来自分类Dev

如何在Powershell中将自定义数据添加为计算属性

来自分类Dev

将自定义用户字段传递给WooCommerce订单元数据

来自分类Dev

将自定义ajax按钮添加到WooCommerce管理订单列表

来自分类Dev

如何将自定义Controltemplate设置为整个应用程序的默认值?

来自分类Dev

将自定义视图保存为默认值

来自分类Dev

在项目中将自定义域成员添加为所有者-GAE

来自分类Dev

WooCommerce如何自定义显示的订单字段的默认内容?

来自分类Dev

将自定义字段添加到Adminhtml表单并填充数据(Magento 2)

来自分类Dev

在WooCommerce中将自定义占位符添加到电子邮件主题

来自分类Dev

如何将自定义字段注入添加到 FXMLLoader 的默认 ControllerFactory?

来自分类Dev

如何在NetSuite中将自定义字段添加到发票

来自分类Dev

如何在NetSuite中将自定义字段添加到发票

来自分类Dev

将自定义字段添加到WooCommerce新帐户页面

来自分类Dev

在自定义UIControl中将ImageView添加为子视图

来自分类Dev

为WooCommerce CSV导出插件添加自定义字段-对于客户第一订单

来自分类Dev

在WooCommerce 3+中向订单添加自定义字段

来自分类Dev

如何为WooCommerce订单页面(管理员)添加自定义字段?

Related 相关文章

  1. 1

    在WooCommerce中将自定义结帐字段值添加到客户订单注释中

  2. 2

    WooCommerce:将自定义元添加为隐藏订单项元以供内部使用

  3. 3

    如何用以前输入的值(如默认的WooCommerce结帐字段)填充自定义结帐字段?

  4. 4

    如何用以前输入的值(如默认的WooCommerce结帐字段)填充自定义结帐字段?

  5. 5

    将自定义字段数据添加到WooCommerce订单

  6. 6

    如何在目标c中将自定义对象存储为用户默认值?

  7. 7

    如何在altair中将自定义颜色主题设置为默认值?

  8. 8

    将自定义字段添加到后端表单

  9. 9

    自定义字段默认值-填充相同字段中的其他条目

  10. 10

    在WooCommerce中将自定义字段添加到简码显示

  11. 11

    如何在Woocommerce中将自定义字段添加到类别中?

  12. 12

    页面加载后,自定义的Woocommerce结帐字段将恢复为默认值

  13. 13

    如何在Powershell中将自定义数据添加为计算属性

  14. 14

    将自定义用户字段传递给WooCommerce订单元数据

  15. 15

    将自定义ajax按钮添加到WooCommerce管理订单列表

  16. 16

    如何将自定义Controltemplate设置为整个应用程序的默认值?

  17. 17

    将自定义视图保存为默认值

  18. 18

    在项目中将自定义域成员添加为所有者-GAE

  19. 19

    WooCommerce如何自定义显示的订单字段的默认内容?

  20. 20

    将自定义字段添加到Adminhtml表单并填充数据(Magento 2)

  21. 21

    在WooCommerce中将自定义占位符添加到电子邮件主题

  22. 22

    如何将自定义字段注入添加到 FXMLLoader 的默认 ControllerFactory?

  23. 23

    如何在NetSuite中将自定义字段添加到发票

  24. 24

    如何在NetSuite中将自定义字段添加到发票

  25. 25

    将自定义字段添加到WooCommerce新帐户页面

  26. 26

    在自定义UIControl中将ImageView添加为子视图

  27. 27

    为WooCommerce CSV导出插件添加自定义字段-对于客户第一订单

  28. 28

    在WooCommerce 3+中向订单添加自定义字段

  29. 29

    如何为WooCommerce订单页面(管理员)添加自定义字段?

热门标签

归档