【问题标题】:How to add a first order message after the buyer name in WooCommerce admin order list如何在 WooCommerce 管理订单列表中的买家姓名后添加第一个订单消息
【发布时间】:2021-02-27 23:19:12
【问题描述】:

意图在附加的图像上表示。基本上显示在 WooCommerce 管理员后端订单页面列表上。如果订单来自新客户(如果这是他的第一个订单),那么管理员可以知道这是个人在商店中的第一个订单。

我发现我应该能够使用以下 sn-p 检查它是否是第一个订单。

function new_customer_warning( $document_type, $order )
{
    if( !empty($order) && $document_type == 'invoice' ) {
        if( $order->get_user_id() != 0 ) {
            $customer_orders = wc_get_customer_order_count( $order->get_user_id() );

            if( $customer_orders == 1 ) {
                echo '<tr><th><strong>New customer!</strong></th><td></td></tr>';
            }
        }
    }
}

但是我想不出管理订单页面的挂钩,如何在那里显示预期的新订单警告。

作为替代方案(或者最好在两个地方都有)“新客户”消息可以直接在“订单详情”页面内回显。

这张图片在两个地点都展示了这个概念的一个例子:

【问题讨论】:

    标签: php wordpress woocommerce backend orders


    【解决方案1】:

    您可以使用 manage_shop_order_posts_custom_columnwoocommerce_admin_order_data_after_order_details 操作挂钩

    // Admin order list
    function action_manage_shop_order_posts_custom_column( $column, $post_id ) {    
        // Compare
        if ( $column == 'order_number' ) {
            // Get order
            $order = wc_get_order( $post_id );
            
            // Getting the user ID
            $user_id = $order->get_user_id();
    
            // User ID exists
            if ( $user_id >= 1 ) {
                // Get the user order count
                $order_count = wc_get_customer_order_count( $user_id );
                
                // First order
                if ( $order_count == 1 ) {
                    echo '&nbsp;<span>&ndash; ' .  __( 'New customer!', 'woocommerce' ) . '</span>';                
                }
            }
        }
    }
    add_action( 'manage_shop_order_posts_custom_column', 'action_manage_shop_order_posts_custom_column', 20, 2 );
    
    // Order details page
    function action_woocommerce_admin_order_data_after_order_details( $order ) {
        // Getting the user ID
        $user_id = $order->get_user_id();
    
        // User ID exists
        if ( $user_id >= 1 ) {
            // Get the user order count
            $order_count = wc_get_customer_order_count( $user_id );
            
            // First order
            if ( $order_count == 1 ) {
                echo '<h3>' .  __( 'New customer!', 'woocommerce' ) . '</h3>';              
            }
        }
    }
    add_action( 'woocommerce_admin_order_data_after_order_details', 'action_woocommerce_admin_order_data_after_order_details', 10, 1 );
    

    【讨论】:

    • 这完全符合我的设想!谢谢一百万 7uc1f3r!
    猜你喜欢
    • 2020-08-29
    • 1970-01-01
    • 2018-09-09
    • 2016-07-26
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多