在woocommerce订单电子邮件中显示多个产品的自定义字段



我试图在发送给客户的woocommerce电子邮件中显示使用ACF创建的许多自定义字段,但我被困在如何处理多个产品订单的字段上。

到目前为止,我已经完成了helgatheviking建议的代码,但我只能一次显示一个产品的CF

现在我正试图弄清楚如何将其编写为循环,以便在同一邮件中显示许多产品的这些字段。不幸的是,我是一个很好的copy&past家伙,我仍然在谷歌一些方法来正确地编写循环在这种情况下,但我没有运气到目前为止。你能帮我吗?

以下是目前为止functions.php中的代码:
<?php 
add_action( 'woocommerce_email_order_details', 'my_custom_order_details', 5, 4 );
function my_custom_order_details( $order, $sent_to_admin, $plain_text, $email ){
    if( $email->id == "customer_on_hold_order" ){
        $field1 = null;
        $items = $order->get_items();
        foreach ( $items as $item ) {
            $product_name = $item['name'];
            $product_id = $item['product_id'];
            $product_variation_id = $item['variation_id'];
            $field1 = get_post_meta($product_id, 'field-1', true);
            $field2 = get_post_meta($product_id, 'field-2', true);
            $field3 = get_post_meta($product_id, 'field-3', true);
            $field4 = get_post_meta($product_id, 'field-4', true);
        }
         if( $field1 && $plain_text ){
        echo "Field 1: " . $field1 . "nn";
    } else if( $field1 && ! $plain_text ){ 
            <h2>My custom fields infos:</h2>
            <p><strong>Product Name:</strong> <?php echo $product_name ?></p>
            <p><strong>Field 1:</strong> <?php echo $field1 ?></p>
            <p><strong>Field 2:</strong> <?php echo $field2 ?></p>
            <p><strong>Field 3:</strong> <?php echo $field3 ?></p>
            <p><strong>Field 4:</strong> <?php echo $field4 ?></p>
<?php
        }
    }
}

解决了这样编辑代码:

add_action( 'woocommerce_email_order_details', 'my_custom_order_details', 5, 4 );
function my_custom_order_details( $order, $sent_to_admin, $plain_text, $email ){
    if( $email->id == "customer_on_hold_order" ){
        $field1 = null;
        $items = $order->get_items();
        foreach ( $items as $item ) {
            $product_name = $item['name'];
            $product_id = $item['product_id'];
            $product_variation_id = $item['variation_id'];
            $field1 = get_post_meta($product_id, 'field-1', true);
            $field2 = get_post_meta($product_id, 'field-2', true);
            $field3 = get_post_meta($product_id, 'field-3', true);
            $field4 = get_post_meta($product_id, 'field-4', true);

         if( $field1 && $plain_text ){
        echo "Field 1: " . $field1 . "nn";
    } else if( $field1 && ! $plain_text ){ 
            <h2>My custom fields infos:</h2>
            <p><strong>Product Name:</strong> <?php echo $product_name ?></p>
            <p><strong>Field 1:</strong> <?php echo $field1 ?></p>
            <p><strong>Field 2:</strong> <?php echo $field2 ?></p>
            <p><strong>Field 3:</strong> <?php echo $field3 ?></p>
            <p><strong>Field 4:</strong> <?php echo $field4 ?></p>
<?php
        }
    }
  }
}

相关内容

  • 没有找到相关文章

最新更新