WooCommerce 管理员产品自定义复选框字段不保存值
WooCommerce admin product custom checkbox field not saving value
我在产品选项上创建了自定义复选框,但卡在保存数据中。
我尝试了所有可能的变体,但没有成功。
我哪里错了?
谢谢
这是代码:
add_action( 'woocommerce_product_options_sku', 'custom_checkbox_field' );
function custom_checkbox_field(){
global $post, $product_object;
if ( ! is_a( $product_object, 'WC_Product' ) ) {
$product_object = wc_get_product( $post->ID );
}
woocommerce_wp_checkbox(
array(
'id' => 'custom_checkbox_field',
'value' => empty($values) ? 'yes' : $values,
'label' => __( 'Label', 'woocommerce' ),
'description' => __( 'Description', 'woocommerce' ),
)
);
}
add_action( 'woocommerce_process_product_meta', 'save_custom_field' );
function save_custom_field( $post_id ) {
// grab the product
$product = wc_get_product( $post_id );
// save data
$product->update_meta_data( 'custom_checkbox_field', isset($_POST['custom_checkbox_field']) ? 'yes' : 'no' );
$product->save();
}
您的代码中缺少一些东西,您最后一个挂钩的函数挂钩可以替换为自 WooCommerce 版本 3 以来更好的函数挂钩。请尝试以下操作:
add_action( 'woocommerce_product_options_sku', 'custom_checkbox_field_product_options_sku' );
function custom_checkbox_field_product_options_sku(){
global $post, $product_object;
if ( ! is_a( $product_object, 'WC_Product' ) ) {
$product_object = wc_get_product( $post->ID );
}
$values = $product_object->get_meta('custom_checkbox_field');
woocommerce_wp_checkbox( array(
'id' => 'custom_checkbox_field',
'value' => empty($values) ? 'yes' : $values, // Checked by default
'label' => __( 'Label', 'woocommerce' ),
'description' => __( 'Description', 'woocommerce' ),
) );
}
add_action( 'woocommerce_admin_process_product_object', 'save_custom_field_product_options_sku' );
function save_custom_field_product_options_sku( $product ) {
$product->update_meta_data( 'custom_checkbox_field', isset($_POST['custom_checkbox_field']) ? 'yes' : 'no' );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我在产品选项上创建了自定义复选框,但卡在保存数据中。 我尝试了所有可能的变体,但没有成功。 我哪里错了? 谢谢
这是代码:
add_action( 'woocommerce_product_options_sku', 'custom_checkbox_field' );
function custom_checkbox_field(){
global $post, $product_object;
if ( ! is_a( $product_object, 'WC_Product' ) ) {
$product_object = wc_get_product( $post->ID );
}
woocommerce_wp_checkbox(
array(
'id' => 'custom_checkbox_field',
'value' => empty($values) ? 'yes' : $values,
'label' => __( 'Label', 'woocommerce' ),
'description' => __( 'Description', 'woocommerce' ),
)
);
}
add_action( 'woocommerce_process_product_meta', 'save_custom_field' );
function save_custom_field( $post_id ) {
// grab the product
$product = wc_get_product( $post_id );
// save data
$product->update_meta_data( 'custom_checkbox_field', isset($_POST['custom_checkbox_field']) ? 'yes' : 'no' );
$product->save();
}
您的代码中缺少一些东西,您最后一个挂钩的函数挂钩可以替换为自 WooCommerce 版本 3 以来更好的函数挂钩。请尝试以下操作:
add_action( 'woocommerce_product_options_sku', 'custom_checkbox_field_product_options_sku' );
function custom_checkbox_field_product_options_sku(){
global $post, $product_object;
if ( ! is_a( $product_object, 'WC_Product' ) ) {
$product_object = wc_get_product( $post->ID );
}
$values = $product_object->get_meta('custom_checkbox_field');
woocommerce_wp_checkbox( array(
'id' => 'custom_checkbox_field',
'value' => empty($values) ? 'yes' : $values, // Checked by default
'label' => __( 'Label', 'woocommerce' ),
'description' => __( 'Description', 'woocommerce' ),
) );
}
add_action( 'woocommerce_admin_process_product_object', 'save_custom_field_product_options_sku' );
function save_custom_field_product_options_sku( $product ) {
$product->update_meta_data( 'custom_checkbox_field', isset($_POST['custom_checkbox_field']) ? 'yes' : 'no' );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。