从订单备注中提取URL,并将其添加到Woocommerce中订购已完成的电子邮件中

时间:2017-02-24 10:08:58

标签: php wordpress email woocommerce

我在这里搜索过,有些帖子帮助我解决了这个问题:

我的包裹公司在订单中添加了订单备注,包括文本和包裹的跟踪网址。然后他们就把订单完成了。

此URL需要添加到订单已完成的邮件中。

此代码正常运行,但仅限于我手动发送订单已完成邮件:

add_action( 'woocommerce_email_before_order_table', 'woo_add_order_notes_to_email' );
function woo_add_order_notes_to_email() {
    global $woocommerce, $post;
    $args = array(
        'post_id'   => $post->ID,
        'status'    => 'approve',
        'type'      => 'order_note'
    );
    $notes = get_comments( $args );

    if ( $notes ) {
        foreach( $notes as $note ) {
            $notecontent = $note->comment_content;

            if( preg_match('/[a-zA-Z]+:\/\/[0-9a-zA-Z;.\/?:@=_#&%~,+$-]+/', $notecontent, $matches) != 0 ) {

                echo '<p>You can follow your order via this link: <a href = "' . $matches[0] . '">' . $matches[0] . '</a></p>';

            }
        }
    }
}

我希望你们能帮助我。

1 个答案:

答案 0 :(得分:0)

我认为你使用了错误的钩子。

你可以用这个钩子'woocommerce_email_order_meta'做同样的事情。它将解决您的问题。

这是代码示例

add_action( 'woocommerce_email_order_meta', 'woo_add_order_notes_to_email' );

function woo_add_order_notes_to_email( $order, $sent_to_admin = false, $plain_text = false ) {
  /*Do something here to add with order completion email */ 
}