第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在 WooCommerce 中將產品自定義字段值保存為自定義訂單項元

在 WooCommerce 中將產品自定義字段值保存為自定義訂單項元

PHP
慕標5832272 2024-01-19 10:25:25
我在 woocommerce(最新版本)中的自定義字段有問題。我需要你的幫助。我的代碼function completed_order($order_id) {    $order = wc_get_order( $order_id );    $customer_id = $order->get_customer_id();    $user = get_user_by('id', $customer_id);    foreach ( $order->get_items() as $item_id => $item ) {        $validity = $item->get_meta( 'validity_field' );        if($validity) {            $a = get_post_meta($item->get_id(), 'validity_field', true);        }            } }add_action('woocommerce_order_status_completed', 'completed_order', 10, 1);function create_custom_field() {    $args = array(        'id' => 'validity_field',        'label' => __( 'Wa?no?? konta', 'waznosc' ),        'class' => 'waznosc-custom-field',        'desc_tip' => true,        'description' => __( 'Wprowadz ilosc dni waznosci konta', 'waznosc' ),    );    woocommerce_wp_text_input( $args );}add_action( 'woocommerce_product_options_general_product_data', 'create_custom_field' );function save_custom_field( $post_id ) {    $product = wc_get_product( $post_id );    $title = isset( $_POST['validity_field'] ) ? $_POST['validity_field'] : '';    $product->update_meta_data( 'validity_field', sanitize_text_field( $title ) );    $product->save();}add_action( 'woocommerce_process_product_meta', 'save_custom_field' );function add_custom_data_to_order( $item, $cart_item_key, $values, $order ) {    foreach( $item as $cart_item_key=>$values ) {        if( isset( $values['title_field'] ) ) {            $item->add_meta_data( __( 'Waznosc konta', 'waznosc' ), $values['validity_field'], true );        }    }}add_action( 'woocommerce_checkout_create_order_line_item', 'add_custom_data_to_order', 10, 4 );現在我在從自定義字段獲取數據時遇到問題validity_field。字段被保存到數據庫,因為當我編輯產品時值在字段中,但在完成訂單后我無法將其掛鉤:(我嘗試使用 get_post_meta、get_meta 和其他方法,但沒有任何作用。有人知道原因嗎?
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

您的代碼中有一些錯誤。請嘗試以下操作:


add_action( 'woocommerce_product_options_general_product_data', 'add_admin_product_custom_field' );

function add_admin_product_custom_field() {

    woocommerce_wp_text_input( array(

        'id' => 'validity_field',

        'label' => __( 'Wa?no?? konta', 'waznosc' ),

        'class' => 'waznosc-custom-field',

        'desc_tip' => true,

        'description' => __( 'Wprowadz ilosc dni waznosci konta', 'waznosc' ),

    ) );

}


add_action( 'woocommerce_admin_process_product_object', 'save_product_custom_field_value' );

function save_product_custom_field_value( $product ) {

    $value = isset( $_POST['validity_field'] ) ? sanitize_text_field($_POST['validity_field']) : '';

    $product->update_meta_data( 'validity_field', $value );

}


add_action( 'woocommerce_checkout_create_order_line_item', 'add_custom_data_to_order_item', 10, 4 );

function add_custom_data_to_order( $item, $cart_item_key, $values, $order ) {

    $product = wc_get_product( $item->get_product_id() ); // The WC_Product Object (and the parent variable product object for product variations)

    $value   = $product->get_meta('validity_field');

    

    if( ! empty( $value ) ) {

        $item->update_meta_data( __( 'Waznosc konta', 'waznosc' ), $value );

    }

}


add_action( 'woocommerce_order_status_completed', 'action_completed_order', 10, 2 );

function action_completed_order( $order_id, $order ) {

    $user_id = $order->get_customer_id();

    $user    = $order->get_user(); // The WP_User Object (if needed)


    foreach ( $order->get_items() as $item_id => $item ) {

        $validity = $item->get_meta( 'validity_field' );

        

        if ( ! empty($validity) ) {

            // Do something with $validity

        }

    } 

}

這次應該可以了。


查看完整回答
反對 回復 2024-01-19
  • 1 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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