链接Dokan Woocommerce电子邮件通知的订单号

时间:2017-08-29 04:20:30

标签: php wordpress woocommerce email-notifications dokan

我正在使用Dokan并且正在运行,但是与Woocommerce的股票电子邮件模板存在一些问题。

  1. 在新订单电子邮件中,订单号也是一个链接。理想情况下,这将链接到他们在Dokan的订单。但是,链接地址是我的(作为管理员)wordpress网站,并指示他们登录到wordpress,他们显然没有凭据。

  2. 客户会收到有关其订单的各种电子邮件,但订单号文本中没有指向我网站上订单的链接。

  3. 我们如何才能在这些电子邮件中添加正确的链接?我只是在学习php,所以技能非常有限。

    以下是admin-new-order&的代码客户完成订单:

    if ( ! defined( 'ABSPATH' ) ) {
        exit;
     }
    
     /**
      * @hooked WC_Emails::email_header() Output the email header
      */
     do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
    
     <p><?php printf( __( 'You have received an order from %s. The order is as follows:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); ?></p>
    
     <?php
    
     /**
    
    
     if ( ! defined( 'ABSPATH' ) ) {
        exit;
    }
    
    /**
     * @hooked WC_Emails::email_header() Output the email header
     */
    do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
    
    <p><?php printf( __( "Hi there. Your recent order on %s has been completed. Your order details are shown below for your reference:", 'woocommerce' ), get_option( 'blogname' ) ); ?></p>
    
    <?php
    
    /**
     * @hooked WC_Emails::order_details() Shows the order details table.
     * @hooked WC_Structured_Data::generate_order_data() Generates structured data.
     * @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
     * @since 2.5.0
     */
    do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
    
    /**
     * @hooked WC_Emails::order_meta() Shows order meta data.
     */
    do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
    
    /**
     * @hooked WC_Emails::customer_details() Shows customer details
     * @hooked WC_Emails::email_address() Shows email address
     */
    do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
    
    /**
     * @hooked WC_Emails::email_footer() Output the email footer
     */
    do_action( 'woocommerce_email_footer', $email );
    
      * @hooked WC_Emails::order_details() Shows the order details table.
      * @hooked WC_Structured_Data::generate_order_data() Generates structured data.
      * @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
      * @since 2.5.0
      */
     do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
    
     /**
      * @hooked WC_Emails::order_meta() Shows order meta data.
      */
     do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
    
     /**
      * @hooked WC_Emails::customer_details() Shows customer details
      * @hooked WC_Emails::email_address() Shows email address
      */
     do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
    
     /**
      * @hooked WC_Emails::email_footer() Output the email footer
      */
     do_action( 'woocommerce_email_footer', $email );
    

1 个答案:

答案 0 :(得分:1)

新订单是管理员或商店经理的佣人,这就是为什么订单链接链接到后端订单编辑页面(仅限管理员通知)

订单号位于 emails/email-order-details.php

  

可以通过将此模板复制到yourtheme / woocommerce / emails / email-order-details.php来覆盖此模板,请参阅:Template Structure + Overriding Templates via a Theme

如果您希望在我的帐户订单视图页面上显示客户电子邮件中的链接(管理员电子邮件通知也是如此),则需要将其替换为:

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

$text_align = is_rtl() ? 'right' : 'left';

do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text, $email ); ?>

    <?php if ( ! $sent_to_admin ) : ?>
        <h2><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></h2>
    <?php else : ?>
        <h2><a class="link" href="<?php echo esc_url( admin_url( 'post.php?post=' . $order->get_id() . '&action=edit' ) ); ?>"><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></a> (<?php printf( '<time datetime="%s">%s</time>', $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) ); ?>)</h2>
    <?php endif; ?>

由此:

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

$text_align = is_rtl() ? 'right' : 'left';

do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text, $email ); ?>

<?php if ( ! $sent_to_admin ) : ?>
    <h2><a class="link" href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ) . get_option( 'woocommerce_myaccount_view_order_endpoint' ) . '/' . $order->get_order_number(); ?>"><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></a></h2>
<?php else : ?>
        <h2><a class="link" href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ) . get_option( 'woocommerce_myaccount_view_order_endpoint' ) . '/' . $order->get_order_number(); ?>"><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></a> (<?php printf( '<time datetime="%s">%s</time>', $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) ); ?>)</h2>
    <?php endif; ?>
  

现在,您将把订单号链接到所有通知的相应我的帐户/订单查看页面,包括管理员电子邮件通知为&#34;新订单&#34; ...

与评论相关的更新(对于正确的&#34;供应商&#34;路径,替换将是:

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

$text_align = is_rtl() ? 'right' : 'left';

do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text, $email ); ?>

<?php if ( ! $sent_to_admin ) : ?>
    <h2><a class="link" href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ) . get_option( 'woocommerce_myaccount_view_order_endpoint' ) . '/' . $order->get_order_number(); ?>"><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></a></h2>
<?php else : ?>
    <h2><a class="link" href="<?php echo home_url( '/' ) . 'dashboard/orders/?order_id=' . $order->get_order_number(); ?>"><?php printf( __( 'Order #%s', 'woocommerce' ), $order->get_order_number() ); ?></a> (<?php printf( '<time datetime="%s">%s</time>', $order->get_date_created()->format( 'c' ), wc_format_datetime( $order->get_date_created() ) ); ?>)</h2>
<?php endif; ?>