我有一个wordpress网站,并且在我的eshop中使用woocommerce插件。
我想在woocommerce订单确认电子邮件中添加一个“取消订单”按钮或链接,该电子邮件将发送给用户。
我搜索了,发现我必须
1)覆盖自定义的电子邮件WooCommerce模板
2)使用操作/过滤器进行条件自定义
挂钩名称:woocommerce_get_cancel_order_url-生成一个URL,以便客户可以取消其(未付款-待处理)订单。
我认为我需要类似下面的代码,但我很困惑...
// Add cancel order link on order confirmation email when status is
processing
function add_cancel_order_link($status, $sent_to_admin ) {
$status= array( 'pending', 'processing', 'on-hold', 'failed' );
$string = WC_Order::get_cancel_order_url( $redirect );
if ( ! $sent_to_admin ) {
if ( $status->processing) {
echo '<p><a href="$string">Cancel order link</a></p>';
}
}
}
add_action( 'woocommerce_email_footer','add_cancel_order_link', 10, 2 );
get_cancel_order_url函数的代码在 源文件名:woocommerce / includes / class-wc-order.php
public function get_cancel_order_url( $redirect = '' ) {
return apply_filters(
'woocommerce_get_cancel_order_url',
wp_nonce_url(
add_query_arg(
array(
'cancel_order' => 'true',
'order' => $this->get_order_key(),
'order_id' => $this->get_id(),
'redirect' => $redirect,
),
$this->get_cancel_endpoint()
),
'woocommerce-cancel_order'
)
);
}
有什么主意吗?