我向 woocommerce 的单个产品页面添加了一个自定义字段,以便显示我销售的图书的 ISBN 编号。我找到了一个很好的指南,并设法添加我想要的所有内容。但是,当我清空 ISBN 的自定义字段时,它在网站上不会变空。
我在functions.php中有以下代码
// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields() {
global $woocommerce, $post;
echo '<div class="options_group">';
// Custom fields will be created here...
// Text Field
woocommerce_wp_text_input(
array(
'id' => '_ISBN_field',
'label' => __( 'ISBN', 'woocommerce' ),
'placeholder' => '',
'desc_tip' => 'true',
'description' => __( 'ISBN.', 'woocommerce' )
)
);
echo '</div>';
}
function woo_add_custom_general_fields_save( $post_id ){
// Customer text ISBN Field
$woocommerce_text_field = $_POST['_ISBN_field'];
if( !empty( $woocommerce_text_field ) )
update_post_meta( $post_id, '_ISBN_field', esc_attr( $woocommerce_text_field ) );
}
然后在short-description.php中我做了它,以便它显示在产品页面上。但是,如果它是空字段,它仍然显示名称 ISBN10:。
<?php
// Display Custom Field Value
if (!((get_post_meta($post->ID, '_ISBN_field', true))==”)) {
//Not empty
echo '<b>ISBN10: </b>',get_post_meta( $post->ID, '_ISBN_field' , true);
}
?>
所以两个问题是我无法编辑产品以包含空的自定义字段。如果字段为空(仅当字段之前未包含数据时才可能),它仍然显示字段名称。
提前致谢。
最佳答案
你的保存函数应该是这样的
function woo_add_custom_general_fields_save( $post_id ){
// Customer text ISBN Field
$woocommerce_text_field = $_POST['_ISBN_field'];
if( !empty( $woocommerce_text_field ) )
update_post_meta( $post_id, '_ISBN_field', esc_attr( $woocommerce_text_field ) );
else
update_post_meta( $post_id, '_ISBN_field', '' );
}
如果 !empty( $woocommerce_text_field )
仅当 $_POST['_ISBN_field']
具有某个值时才返回 true,因此如果 $ 则帖子元不会更新_POST['_ISBN_field']
为空
关于php - 当我将它们留空时,Woocommerce 自定义字段不会更新,并且仍然显示空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720977/