Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按顺序将分配的经理姓名首字母添加到订单号_Php_Wordpress_Woocommerce_Orders_Sequential - Fatal编程技术网

Php 按顺序将分配的经理姓名首字母添加到订单号

Php 按顺序将分配的经理姓名首字母添加到订单号,php,wordpress,woocommerce,orders,sequential,Php,Wordpress,Woocommerce,Orders,Sequential,通过以下代码,我可以为Woocmerce订单号添加前缀和后缀: add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number' ); function change_woocommerce_order_number( $order_id ) { $prefix = 'VK/'; $suffix = '/TS'; $new_order_id = $prefix . $order_id . $

通过以下代码,我可以为Woocmerce订单号添加前缀和后缀:

add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number' );
function change_woocommerce_order_number( $order_id ) {
    $prefix = 'VK/';
    $suffix = '/TS';
    $new_order_id = $prefix . $order_id . $suffix;

    return $new_order_id;
}

How we can prefix the order number with shop manager initials sequentially from an array of shop managers initials?

This way we can assign equally WooCommerce orders to each one of them.

Any help?

要按顺序使用带有经理姓名首字母的前缀订单号,请使用以下命令:

// Save prefixed order number as order meta data
add_action( 'woocommerce_checkout_update_order_meta', 'save_the_order_number', 10, 2 );
function save_the_order_number( $order_id, $data ) {
    // Here set the managers initials
    $initials = array('JKI', 'FGR', 'LFA', 'OPI', 'TME');
    
    $count    = count($initials); // Get the length of the array (manager initials count)
    $previous = get_option('last_assigned_manager'); // Load previous assigned manager initials value
    $prev_key = array_search($previous, $initials);  // Get the array key for previous manager initials value
    $now_key  = ($previous + 1) == $count ? 0 : $previous + 1; // Get the next array key (the current manager to be assigned)
    
    update_post_meta( $order_id, '_order_number', $initials[$now_key] . '-' . $order_id ); // Save prefixed order number 
    update_option( 'last_assigned_manager', $initials[$now_key] ); // Save current assigned manager initials value
}

// Assign order number meta data to get_orde_number method
add_filter( 'woocommerce_order_number', 'assign_order_number_from_meta_data', 10, 2 );
function assign_order_number_from_meta_data( $order_id, $order ) {
    // Get the order number (custom meta data)
    $order_number = $order->get_meta('_order_number'); 
    
    return $order_number ? $order_number : $order_id;
}

代码进入活动子主题(或活动主题)的functions.php文件。它应该可以工作。

如果我有3个订单,我希望每个订单都被分配到我选择的3个字母中的一个,例如,不要将一个字母附加到所有3个,然后再将另一个字母附加到其他2个订单。你知道我的意思吗?谢谢你的链接,我来看看。在这种情况下,有5个人处理订单,他们希望他们的首字母平均分配给每个订单。在订单号的开头或结尾。好的,我明白了…我已经回答了。如果您对以下答案有任何反馈,我们将不胜感激。当然,在今天或明天,我将带着反馈返回。非常感谢您的帮助。您好,我遇到了下一个错误“警告:call_user_func_array()希望参数1是一个有效的回调,函数'assign_order_number_from_meta_data'在/home/vdcdevelopment/public_html/connatony/wp includes/class-wp-hook.php第287行找不到或函数名无效”没有更多错误,已分配,但5个字母中只有一个是首字母。我在所有5000个初始FGR上放置了5个测试命令。我希望我能平等地分配他们。。。服从命令。