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

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

自定義 WooCommerce 產品字段未保存在數據庫中

自定義 WooCommerce 產品字段未保存在數據庫中

PHP
開心每一天1111 2022-12-23 13:00:07
我為 WooCommerce 產品創建了一個自定義字段,但是當我嘗試保存它時,它的值沒有保存在數據庫中function product_certification_number() {    $args = array(        'id'            => 'product_certification_number',        'label'         => sanitize_text_field( 'Product Certification Number' ),    );    woocommerce_wp_text_input( $args );}add_action('woocommerce_product_options_general_product_data','product_certification_number' );function product_certification_number_save( $post_id ) {    if ( ! ( isset( $_POST['woocommerce_meta_nonce'], $_POST[ 'product_certification_number' ] ) || wp_verify_nonce( sanitize_key( $_POST['woocommerce_meta_nonce'] ), 'woocommerce_save_data' ) ) ) {        return false;    }    $product_teaser = sanitize_text_field(        wp_unslash( $_POST[ 'product_certification_number' ] )    );    update_post_meta(        $post_id,        'product_certification_number',        esc_attr( $product_teaser )    );}add_action('woocommerce_process_product_meta','product_certification_number_save');
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

編輯:用于woocommerce_admin_process_product_object保存而不是過時的woocommerce_process_product_meta。感謝:@ LoicTheAztec


// Add field

function product_certification_number() {

    $args = array(

        'id'            => '_product_certification_number',

        'label'         => __( 'Product Certification Number', 'woocommerce' ),

        'class'         => 'custom-field',

        'desc_tip'      => true,

        'description'   => __( 'My description', 'woocommerce' ),   

    );

    woocommerce_wp_text_input( $args );

}

add_action('woocommerce_product_options_general_product_data','product_certification_number', 10, 0 );


// Save

function product_certification_number_save( $product ){

    if( isset($_POST['_product_certification_number']) ) {

        $product->update_meta_data( '_product_certification_number', sanitize_text_field( $_POST['_product_certification_number'] ) );

    }

}

add_action( 'woocommerce_admin_process_product_object', 'product_certification_number_save', 10, 1 );



查看完整回答
反對 回復 2022-12-23
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

我在這個問題上浪費了兩個小時。


我終于發現你需要在save_meta_data之后打電話update_meta_data:


/** @var WC_Product */

$product->update_meta_data($key, $value);

$product->save_meta_data();


查看完整回答
反對 回復 2022-12-23
  • 2 回答
  • 0 關注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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