我想在向客户退款时触发向网站管理员发送电子邮件。目前只有客户收到电子邮件。
关于如何实现这个有什么想法吗?
要在 WooCommerce 中处理退款时向管理员发送自定义电子邮件通知,您可以使用 woocommerce_order_refunded 操作挂钩。当订单退款时,此挂钩会触发,您可以附加一个自定义函数,向管理员发送电子邮件。
这是您需要添加到functions.php或自定义插件中的代码:
function send_refund_email_to_admin($order_id) {
// Get the order object
$order = wc_get_order($order_id);
// Check if the order exists and has been refunded
if ($order) {
// Get the admin email address
$admin_email = get_option('admin_email');
// Prepare the email subject and content
$subject = 'Refund Processed for Order #' . $order->get_order_number();
$message = 'A refund has been processed for Order #' . $order->get_order_number() . ".\n\n";
$message .= 'Refund Details: ' . "\n";
$message .= 'Refunded Amount: ' . $order->get_total_refunded() . "\n";
$message .= 'Refund Reason: ' . $order->get_meta('_refund_reason') . "\n\n";
$message .= 'You can view the refund details in the WooCommerce Orders section.';
// Send the email to the admin
wp_mail($admin_email, $subject, $message);
}
}
add_action('woocommerce_order_refunded', 'send_refund_email_to_admin');
如何运作:
woocommerce_order_refunded
:每当处理退款时都会触发此 WooCommerce 挂钩。
wc_get_order($order_id)
:根据订单ID检索订单详情。
wp_mail()
:使用 wp_mail() 函数将退款详细信息发送到管理员的电子邮件。
补充说明:
退款原因存储为订单元数据,可以通过
$order->get_meta('_refund_reason')
。
通过此设置,每次在 WooCommerce 中处理退款时,管理员都会收到一封电子邮件。