更新自定义产品元框字段-WooCommerce

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

我正在尝试使用WooCommerce核心的更新系统来更新自定义产品元框字段。这是我的代码:

新字段运送信息

add_action( 'woocommerce_product_options_shipping', 'my_product_options_shipping' );
function my_product_options_shipping() {
    global $post;
    $shipping_info = get_post_meta( $post->ID, '_shipping_info', true );

    woocommerce_wp_text_input(
        array(
            'id'          => '_shipping_info',
            'value'       => $shipping_info,
            'label'       => __( 'Shipping info', 'woocommerce' ),
            'placeholder' => __( 'Shipping in two days', 'woocommerce' ),
        )
    );
}

这是在WC_Meta_Box_Product_Data :: save中将新字段添加为prop的函数

add_action( 'woocommerce_admin_process_product_object', 'my_admin_process_product_object' );
function my_admin_process_product_object( $product ) {
    $product->set_props(
        array(
            'shipping_info' => isset( $_POST['_shipping_info'] ) ? wc_clean( wp_unslash( $_POST['_shipping_info'] ) ) : null,
        )
    );
}

我想我错过了一步。不应该从功能WC_Meta_Box_Product_Data :: save wich自动附加到woocommerce_process_product_meta吗?

编辑

我找到了缺少的步骤。我需要在抽象类WC_Data的受保护数组$ extra_data中添加我的自定义帖子元。

我不太擅长OOP,所以。如何访问该数组以推送自定义数据?

谢谢!

wordpress woocommerce product meta
1个回答
0
投票

我可以看到您正在执行$shipping_info = get_post_meta( $post->ID, '_shipping_info', true );那为什么不省事,只用update_post_meta

add_action( 'woocommerce_admin_process_product_object', 'my_admin_process_product_object' );
function my_admin_process_product_object( $product ) {
    update_post_meta($product->get_id(), '_shipping_info',  wc_clean( wp_unslash( $_POST['_shipping_info'] ) ) );
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.