php – 在Woocommerce中添加自定义订单状态并发送有关状态更改的电子邮件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 在Woocommerce中添加自定义订单状态并发送有关状态更改的电子邮件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3205字,纯文字阅读大概需要5分钟。
内容图文
![php – 在Woocommerce中添加自定义订单状态并发送有关状态更改的电子邮件](/upload/InfoBanner/zyjiaocheng/704/5cd220f7465d418793c5adb979105d44.jpg)
我想在我的woocommerce网站上添加自定义订单状态.每当状态更改为该自定义状态时,我想发送邮件.
我已经尝试了Send an email notification when custom order status changes in WooCommerce以及https://github.com/sarun007/custom-email-plugin/tree/master但没有工作我正在使用woocommerce 3.2.6版本
解决方法:
要使其适用于新的自定义订单状态(此处为“等待交货”),您应该:
>首先注册自定义新订单状态,
>在管理订单列表中显示批量编辑下拉列表(可选),
>以编辑页面状态下拉列表的顺序显示它
>在订单获得此自定义状态时发送自定义电子邮件通知.
编码:
// register a custom post status 'awaiting-delivery' for Orders
add_action( 'init', 'register_custom_post_status', 20 );
function register_custom_post_status() {
register_post_status( 'wc-awaiting-delivery', array(
'label' => _x( 'Awaiting delivery', 'Order status', 'woocommerce' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Awaiting delivery <span class="count">(%s)</span>', 'Awaiting delivery <span class="count">(%s)</span>', 'woocommerce' )
) );
}
// Adding custom status 'awaiting-delivery' to order edit pages dropdown
add_filter( 'wc_order_statuses', 'custom_wc_order_statuses', 20, 1 );
function custom_wc_order_statuses( $order_statuses ) {
$order_statuses['wc-awaiting-delivery'] = _x( 'Awaiting delivery', 'Order status', 'woocommerce' );
return $order_statuses;
}
// Adding custom status 'awaiting-delivery' to admin order list bulk dropdown
add_filter( 'bulk_actions-edit-shop_order', 'custom_dropdown_bulk_actions_shop_order', 20, 1 );
function custom_dropdown_bulk_actions_shop_order( $actions ) {
$actions['mark_awaiting-delivery'] = __( 'Mark Awaiting delivery', 'woocommerce' );
return $actions;
}
// Adding action for 'awaiting-delivery'
add_filter( 'woocommerce_email_actions', 'custom_email_actions', 20, 1 );
function custom_email_actions( $action ) {
$actions[] = 'woocommerce_order_status_wc-awaiting-delivery';
return $actions;
}
add_action( 'woocommerce_order_status_wc-awaiting-delivery', array( WC(), 'send_transactional_email' ), 10, 1 );
// Sending an email notification when order get 'awaiting-delivery' status
add_action('woocommerce_order_status_awaiting-delivery', 'backorder_status_custom_notification', 20, 2);
function backorder_status_custom_notification( $order_id, $order ) {
// HERE below your settings
$heading = __('Your Awaiting delivery order','woocommerce');
$subject = '[{site_title}] Awaiting delivery order ({order_number}) - {order_date}';
// Getting all WC_emails objects
$mailer = WC()->mailer()->get_emails();
// Customizing Heading and subject In the WC_email processing Order object
$mailer['WC_Email_Customer_Processing_Order']->heading = $heading;
$mailer['WC_Email_Customer_Processing_Order']->subject = $subject;
// Sending the customized email
$mailer['WC_Email_Customer_Processing_Order']->trigger( $order_id );
}
代码位于活动子主题(或活动主题)的function.php文件中.
测试和工作(应适用于2.5以上的任何Woocommerce版本)
In others function if you use the WC_Order method
update_status()
to change an order to ‘awaiting-delivery’ status like:06001
the related email notification will be sent too.
内容总结
以上是互联网集市为您收集整理的php – 在Woocommerce中添加自定义订单状态并发送有关状态更改的电子邮件全部内容,希望文章能够帮你解决php – 在Woocommerce中添加自定义订单状态并发送有关状态更改的电子邮件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。