在 WordPress 中,我安装了一个应用程序构建器插件,该插件允许我向应用程序发送推送通知,当电子邮件从网站发送到登录应用程序的当前用户的电子邮件地址时,它会自动发送推送通知插件允许我手动向不同的用户角色发送自定义推送通知 - 这很好。
但问题是 - 我希望每次收到新的 Woocommerce 订单时都能够向“司机”用户角色发送自动推送通知。
警告 - 我是一个新手(显然)。
插件开发者给我提供了发送推送通知的功能,即:
wpmobileapp_push($title, $message, $image_url, $page_url, $lang_2letters = 'all', $send_timestamp = '', $user_email = '');
我使用的woocommerce_thankyou
功能是每次客户进入“谢谢”页面时都会运行该功能。
因此,经过一番调查后,我想出了以下函数(已添加到我的“function.php”中),该函数“应该”检查“驱动程序”用户是否已登录,并且应该调用发送推送通知的 php 函数每次发送新的 woocommerce 时都会发送给驱动程序,但这不起作用:
/**
* Add a notification when a new woocommerce order is recieved.
*
*/
add_action('woocommerce_thankyou', 'wpmobileapp_woo_order', 10, 1 );
function wpmobileapp_woo_order($order_id) {
// Check if user is logged in.
if ( is_user_logged_in() ) {
// Get the user ID.
$user_id = get_current_user_id();
// Get the user object.
$user_meta = get_userdata( $user_id );
// If user_id doesn't equal zero.
if ( 0 != $user_id ) {
// Get all the user roles as an array.
$user_roles = $user_meta->roles;
// Check if the role you're interested in, is present in the array.
if ( in_array( 'driver', $user_roles, true ) ) {
$order = new WC_Order( $order_id );
$items = $order->get_items();
$customer_address = $order->get_billing_address();
$user_email = $user_meta->user_email;
$image_url = '';
$link = '';
$title = "new order";
$message = $order . ', ' . $items . ', ' . $customer_address;
wpmobileapp_push($title, $message , $image_url, $link, $lang_2letters = 'all', $send_timestamp = '', $user_email);
}
}
}
}
我尝试了很多不同的方法来尝试让这项工作自己完成,以便让它在每次下新订单时向司机使用角色类型发送自动通知,但没有任何效果。一些帮助将不胜感激。
温温酱