【发布时间】:2021-09-23 13:49:49
【问题描述】:
我正在构建一个插件,将客户附加到商店经理。店长只能看到附属于他的客户订单。该插件有两个部分:
第一个,我已经建立了它,隐藏所有未附加到商店经理的订单。如果你想看看它是如何工作的,下面是代码:
function before_checkout_create_order($order, $data) {
$store_manager_id = '';
switch ($order->get_user_id()) {
case 34:
$store_manager_id = 18;
break;
case 33:
$store_manager_id = 20;
break;
}
$order->update_meta_data('_store_manager_id', $store_manager_id);
}
add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);
function custom_admin_shop_manager_orders($query) {
global $pagenow;
$qv = &$query->query_vars;
$currentUserRoles = wp_get_current_user()->roles;
$user_id = get_current_user_id();
if (in_array('shop_manager', $currentUserRoles)) {
if ( $pagenow == 'edit.php' &&
isset($qv['post_type']) && $qv['post_type'] == 'shop_order' ) {
// I use the meta key from step 1 as a second parameter here
$query->set('meta_key', '_store_manager_id');
// The value we want to find is the $user_id defined above
$query->set('meta_value', $user_id);
}
}
return $query;
}
add_filter('pre_get_posts', 'custom_admin_shop_manager_orders');
?>
我需要帮助的第二部分:我正在尝试只为相关商店经理发送电子邮件。
例如:客户订购了一些产品,附加到他的店铺经理收到一封关于他的订单的电子邮件,但所有其他店铺经理都没有收到任何东西。
如果您有任何想法,请随意!
【问题讨论】:
-
客户下单时发送邮件。您可以使用具有订单 ID 的 woocommerce_thankyou 挂钩,因此您可以轻松获取经理电子邮件并使用 wp_mail()。
-
我有类似的项目,我使用 woocommerce_email_recipient_new_order 从 woocommerce 设置 + 我的供应商向我的主要电子邮件发送新订单电子邮件,如果您想使用电子邮件挂钩,我可以与您分享解决方案。我使用这个 bcs 我需要不同的电子邮件来通知他,所以它更符合我的插件。
-
我对 Wordpress Hooks 的世界有点陌生,所以如果你有任何代码可以帮助我理解你是如何构建它的,那就太好了!
标签: php wordpress woocommerce