WooCommerce在订单通知中显示先进的自定义字段(ACF)。

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

我已经添加了以下代码段来显示一个自定义字段(如果产品有字段,则不显示分类字段)和预计交付时间。这很有效。

    <?php add_action( 'woocommerce_before_add_to_cart_form', 'geschatte_levertijd', 10 );
        function geschatte_levertijd (){

    if( get_field('plevertijd') ): ?>
            <span class="product_melding_kleur"><i class="fa fa-truck"></i>Levertijd: <a href="/verzending-en-levertijd/" alt="Verzending en levertijd" ><?php the_field( 'plevertijd' ); ?></a></span>

        <?php else: ?>

    <? $terms = get_the_terms( $post->ID, 'product_cat' );
            if ( !empty($terms)):
            $term = array_pop($terms);
                    $text= get_field('levertijd', $term);
                    if (!empty($levertijd))?>
                <span class="product_melding_kleur"><i class="fa fa-truck"></i>Levertijd: <a href="/verzending-en-levertijd/" alt="Verzending en levertijd" ><?php the_field( 'levertijd', $term ); ?></a></span>

    <?php endif; ?>

    <?php endif; 
        }
    ?>

但现在我试图在订单通知邮件中显示该字段。谁能给我指出正确的方向,如何做到这一点?

php wordpress woocommerce advanced-custom-fields email-notifications
1个回答
0
投票

下面将使用您的代码来实现在订单项目产品名称下显示电子邮件通知。

add_action( 'woocommerce_order_item_meta_start', 'add_estimated_delivery_time_to_emails', 10, 3 );
function add_estimated_delivery_time_to_emails( $item_id, $item, $order ) {
    // On email notifications and for line items
    if ( ! is_wc_endpoint_url() && $item->is_type('line_item') ) { 
        if( $plevertijd = get_field('plevertijd', $item->get_product_id() ) ) {
            echo '<span class="product_melding_kleur"><i class="fa fa-truck"></i>Levertijd: <a href="/verzending-en-levertijd/" alt="Verzending en levertijd" >' . $plevertijd . '</a></span>';
        } else {
            $terms = get_the_terms( $item->get_product_id(), 'product_cat' );
            
            if ( ! empty($terms) ) {
                $term = array_pop( $terms );
                
                if( $levertijd = get_field('levertijd', $term ) ) {
                    echo '<span class="product_melding_kleur"><i class="fa fa-truck"></i>Levertijd: <a href="/verzending-en-levertijd/" alt="Verzending en levertijd" >' . $levertijd . '</a></span>';
                }
            }
        } 
    }
}

代码在您的活动子主题(或活动主题)的function.php文件中。它应该工作。


在前台显示订单。

如果你想在客户订单(前端)上显示,你可以从 "订单项目 "中删除。IF 下面的语句。! is_wc_endpoint_url() &&

你也可以使用 woocommerce_order_item_meta_end 钩子来代替,以获得产品属性后对产品变化的显示。

© www.soinside.com 2019 - 2024. All rights reserved.