根据可变增量自动将商店经理分配给新的 WooCommerce 订单
Auto assign a shop manager to a new WooCommerce order based on variable increment
我正在尝试将每个新订单分配给商店经理列表。我需要的就像一个队列,所以每次创建新订单时都会分配给队列中的下一个店长。
这是我的代码:
function before_checkout_create_order($order, $data) {
global $i;
switch ($i) {
case 0:
$user = get_user_by('email', 'firstShopManagere@example.com');
break;
case 1:
$user = get_user_by('email', 'secondShopManager@example.com');
$i=0;
break;
}
$userLastName = $user->user_lastname;
$order->update_meta_data('asesor_asignado',$userLastName);
$i++;
}
add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);
我现在处理的问题是$i
变量无法存储,即使我增加了不变的值,以便下一次该值是0 再次。同样,每次 $i
达到 4,它应该回到 0
有什么建议吗?
要管理 $i
,您可以使用以下 WordPress 功能:
- add_option() - 添加新选项
- update_option() - 更新已添加选项的值
- get_option() - 根据选项名称检索选项值
这些将允许您在每次调用挂钩回调函数时修改或重置$i
所以你得到:
function action_woocommerce_checkout_create_order( $order, $data ) {
// Initialize
$i = 0;
$user = '';
// Option does not exist
if ( ! get_option( 'my_counter') ) {
// Adds a new option
add_option( 'my_counter', $i );
} else {
// Get value
$i = get_option( 'my_counter' );
}
// Compare
switch ( $i ) {
case 0:
$user_name = 'user_0';
break;
case 1:
$user_name = 'user_1';
break;
case 2:
$user_name = 'user_2';
break;
case 3:
$user_name = 'user_3';
break;
case 4:
$user_name = 'user_4';
break;
}
// Update meta data
$order->update_meta_data( 'asesor_asignado', $user_name );
// $i less than
if ( $i < 4 ) {
// increment
$i++;
} else {
// Reset
$i = 0;
}
// Updates the value of an option that was already added
update_option( 'my_counter', $i );
}
add_action( 'woocommerce_checkout_create_order', 'action_woocommerce_checkout_create_order', 10, 2 );
我正在尝试将每个新订单分配给商店经理列表。我需要的就像一个队列,所以每次创建新订单时都会分配给队列中的下一个店长。
这是我的代码:
function before_checkout_create_order($order, $data) {
global $i;
switch ($i) {
case 0:
$user = get_user_by('email', 'firstShopManagere@example.com');
break;
case 1:
$user = get_user_by('email', 'secondShopManager@example.com');
$i=0;
break;
}
$userLastName = $user->user_lastname;
$order->update_meta_data('asesor_asignado',$userLastName);
$i++;
}
add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);
我现在处理的问题是$i
变量无法存储,即使我增加了不变的值,以便下一次该值是0 再次。同样,每次 $i
达到 4,它应该回到 0
有什么建议吗?
要管理 $i
,您可以使用以下 WordPress 功能:
- add_option() - 添加新选项
- update_option() - 更新已添加选项的值
- get_option() - 根据选项名称检索选项值
这些将允许您在每次调用挂钩回调函数时修改或重置$i
所以你得到:
function action_woocommerce_checkout_create_order( $order, $data ) {
// Initialize
$i = 0;
$user = '';
// Option does not exist
if ( ! get_option( 'my_counter') ) {
// Adds a new option
add_option( 'my_counter', $i );
} else {
// Get value
$i = get_option( 'my_counter' );
}
// Compare
switch ( $i ) {
case 0:
$user_name = 'user_0';
break;
case 1:
$user_name = 'user_1';
break;
case 2:
$user_name = 'user_2';
break;
case 3:
$user_name = 'user_3';
break;
case 4:
$user_name = 'user_4';
break;
}
// Update meta data
$order->update_meta_data( 'asesor_asignado', $user_name );
// $i less than
if ( $i < 4 ) {
// increment
$i++;
} else {
// Reset
$i = 0;
}
// Updates the value of an option that was already added
update_option( 'my_counter', $i );
}
add_action( 'woocommerce_checkout_create_order', 'action_woocommerce_checkout_create_order', 10, 2 );