【问题标题】:Issue adding date created to order number when creating order manually in WooCommerce在 WooCommerce 中手动创建订单时,将创建日期添加到订单号
【发布时间】:2021-10-27 00:22:44
【问题描述】:

我使用以下代码在 WooCommerce 中修改订单号。

add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number', 1, 2);

function change_woocommerce_order_number( $order_id, $order ) {
    $prefix = '160-';
    // you will need to get your city as a variable to pass in to priffix 
    $order = wc_get_order( $order_id );
    $order_date = $order->get_date_created();
    $date_created = $order_date->date( 'Ymd' );
    
   
    // You can use either one of $order->id (or) $order_id
    // Both will wor
    return $prefix . $order->id . '-'.$date_created;
}   

此代码在结帐过程中有效,但当我在 WooCommerce 后端手动创建订单时出现类似错误。

如何防止这种情况发生?

【问题讨论】:

    标签: wordpress date woocommerce backend orders


    【解决方案1】:

    您的代码包含一些错误

    • 没有必要使用$order = wc_get_order( $order_id );,因为$order 已经传递给函数
    • 自 WooCommerce 3 (2017) 以来,$order->id 已替换为 $order->get_id()
    • 但是,在此答案中不需要使用/替换 $order->get_id(),因为这也会传递给函数
    • 错误不会在你下单的时候出现,但是会在你想在后台新建订单时出现(你就是这种情况)。只是因为订单尚未创建,并且该值尚不存在

    所以你得到

    function filter_woocommerce_order_number( $order_number, $order ) { 
        // Prefix
        $prefix = '160-';
        
        // Is null
        if ( is_null( $order->get_date_created() ) ) {
            $order->set_date_created( new WC_DateTime() );
        }
        
        // Get date created
        $date_created = $order->get_date_created()->date( 'Ymd' );
    
        return $prefix . $order_number . '-' . $date_created;
    }
    add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 );
    

    【讨论】:

    • 哦,它有效。谢谢,你为我节省了很多时间!
    【解决方案2】:

    试试这个代码。

    替换这行。

     $order_date = $order->get_date_created();
     $date_created = $order_date->date( 'Ymd' );
    

    $date_created = $order->get_date_created()->date('Ymd');
    

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2014-07-28
      • 2013-04-20
      • 2019-09-10
      • 2020-06-06
      • 2015-11-27
      • 2013-11-02
      • 1970-01-01
      • 2019-06-03
      相关资源
      最近更新 更多