亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將自定義結帳字段打印到電子郵件訂單詳細信息中

如何將自定義結帳字段打印到電子郵件訂單詳細信息中

PHP
胡說叔叔 2022-10-28 16:06:30
我想將我的自定義結帳字段打印到所有電子郵件通知中,如下面的屏幕截圖所示。到目前為止有效的方法將字段添加到結帳處理結帳使用字段值更新訂單元數據在訂單編輯頁面顯示字段值我的問題如何將自定義結帳字段添加到電子郵件訂單詳細信息中(如屏幕截圖所示)這是我到目前為止使用的代碼,我該如何進一步調整它?/* Add the field to the checkout */add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );function my_custom_checkout_field( $checkout ) {    echo '<div id="my_custom_checkout_field"><h3>' . __('Imi? i nazwisko osoby obdarowanej') . '</h3>';    woocommerce_form_field( 'my_field_name', array(        'type'          => 'text',        'class'         => array('my-field-class form-row-wide'),        'label'         => __('Podaj imi? i nazwisko osoby obdarowanej'),        'placeholder'   => __(''),        'required'  => true,        ), $checkout->get_value( 'my_field_name' ));    echo '</div>';}/* Process the checkout */add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');function my_custom_checkout_field_process() {    // Check if set, if its not set add an error.    if ( ! $_POST['my_field_name'] )        wc_add_notice( __( '<strong>Imi? i nazwisko osoby obdarowanej</strong> jest wymaganym polem' ), 'error' );}/* Update the order meta with field value */add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );function my_custom_checkout_field_update_order_meta( $order_id ) {    if ( ! empty( $_POST['my_field_name'] ) ) {        update_post_meta( $order_id, 'My Field', sanitize_text_field( $_POST['my_field_name'] ) );    }}/* Display field value on the order edit page */add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );function my_custom_checkout_field_display_admin_order_meta($order){    echo '<p><strong>'.__('Imie i nazwisko obdarowanej').':</strong> ' . get_post_meta( $order->id, 'My Field', true ) . '</p>';}
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

步驟 1)將您的代碼更改為此


/* Add the field to the checkout */

add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );

function my_custom_checkout_field( $checkout ) {


    echo '<div id="my_custom_checkout_field"><h3>' . __('Imi? i nazwisko osoby obdarowanej') . '</h3>';


    woocommerce_form_field( 'my_field_name', array(

        'type'          => 'text',

        'class'         => array('my-field-class form-row-wide'),

        'label'         => __('Podaj imi? i nazwisko osoby obdarowanej'),

        'placeholder'   => __(''),

        'required'  => true,

        ), $checkout->get_value( 'my_field_name' ));


    echo '</div>';

}


/* Process the checkout */

add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

function my_custom_checkout_field_process() {

    // Check if set, if its not set add an error.

    if ( ! $_POST['my_field_name'] )

        wc_add_notice( __( '<strong>Imi? i nazwisko osoby obdarowanej</strong> jest wymaganym polem' ), 'error' );

}


/* Update the order meta with field value */

add_action( 'woocommerce_checkout_create_order', 'my_custom_checkout_field_create_order', 10, 2 );

function my_custom_checkout_field_create_order( $order, $data ) {   

    if ( ! empty( $_POST['my_field_name'] ) ) {

        $order->update_meta_data( '_my_field', sanitize_text_field( $_POST['my_field_name'] ) ); // Order meta data

    }

}


/* Display field value on the order edit page */

add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order) {

    // Get meta

    $my_field = $order->get_meta( '_my_field' );


    echo '<p><strong>'.__('Imie i nazwisko obdarowanej').':</strong> ' . $my_field . '</p>';

}

步驟 2)覆蓋以下模板文件


https://github.com/woocommerce/woocommerce/blob/3.8.0/templates/emails/email-order-details.php


可以通過將其復制到yourtheme/woocommerce/emails/email-order-details.php來覆蓋此模板 。


在第84行下添加以下代碼


$my_field = $order->get_meta( '_my_field' );

if ( isset( $my_field ) ) {

    ?>

    <tr>

        <th class="td" scope="row" colspan="2" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php echo 'Imie i nazwisko obdarowanej:'; ?></th>

        <td class="td" style="text-align:<?php echo esc_attr( $text_align ); ?>;"><?php echo $my_field; ?></td>

    </tr>               

    <?php

}


查看完整回答
反對 回復 2022-10-28
  • 1 回答
  • 0 關注
  • 98 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號