如何在WordPress网站上的woocommerce订单确认电子邮件中添加“取消订单”按钮?

时间:2019-10-11 12:14:34

标签: php wordpress woocommerce hook-woocommerce

我有一个wordpress网站,并且在我的eshop中使用woocommerce插件。

我想在woocommerce订单确认电子邮件中添加一个“取消订单”按钮或链接,该电子邮件将发送给用户。

我搜索了,发现我必须

1)覆盖自定义的电子邮件WooCommerce模板

  • 首先,请确保WordPress安装中存在以下目录:wp-content / themes / your-theme / woocommerce / emails。
  • 接下来,将在wp-content / plugins / woocommerce / templates / emails / ...中找到的文件复制到商店的主题:your-theme / woocommerce / emails/。
  • 最后,编辑您的主题/ woocommerce /电子邮件/...

2)使用操作/过滤器进行条件自定义

  • 自定义电子邮件最有效的方法是使用WooCommerce自定义代码。显然,这需要PHP方面的高级专业知识。

挂钩名称: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'
        )
    );
}

有什么主意吗?

0 个答案:

没有答案