WooCommerce产品TAG的自定义电子邮件

问题描述 投票:0回答:1

我想在Woocommerce的“订单完成”电子邮件中添加唯一的文本,但仅当购买的产品具有特定的产品标签时才可以。如果购买的商品带有“筹款人”标签,我希望电子邮件中包含文本,感谢他们支持我们的筹款人。长话短说,但我们不能为此使用类别,而必须使用标签。

我已经尝试编辑customer-complete-order.php文件,并且可以正常工作,但是我对PHP代码不满意,并且没有如何调用标记的示例。

我还尝试根据其他人的操作来编辑functions.php,这是我所掌握的。

function woocommerce_custom_email_per_product_depending_on_product_tag( $email_heading, $order ) {
global $woocommerce;
$items = $order->get_items();
foreach ( $items as $item ) {
    $product_tag = $item['product_tag'];
    if ( $product_tag == fundraiser ) {
        $email_body = 'Thanks for buying a fundraiser.';
    }
    return $email_heading;
}

}

wordpress email woocommerce tags product
1个回答
0
投票
function woocommerce_custom_email_per_product_depending_on_product_tag( $order, $sent_to_admin, $plain_text, $email ) {
    $items = $order->get_items();

    foreach ( $items as $item ) {               
        // get an array of the WP_Term objects for a defined product ID
        $terms = wp_get_post_terms( $item['product_id'], 'product_tag' );

        foreach($terms as $term){
            $term_names[] = $term->name; // Product tag Name

            //$term->term_id; Product tag Id
            //$term->slug; Product tag slug
        }
    }

    if ( $email->id == 'customer_completed_order' && in_array('fundraiser', $term_names) ) {
        echo '<p>Extra text</p>' . '<br>';
        print_r($product_ids);
    }
}
add_action( 'woocommerce_email_before_order_table', 'woocommerce_custom_email_per_product_depending_on_product_tag', 10, 4 );
© www.soinside.com 2019 - 2024. All rights reserved.