我添加了一个自定义字段到一个单一的产品页面为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中,我把它显示在产品页面上,但是它仍然显示名称ISBN 10:如果它是空字段。
<?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);
}
?>
因此,两个问题是我不能编辑产品包含一个空的自定义字段。如果字段为空(只有当字段以前没有包含数据时才可能),它仍然显示字段名称。
先谢了。
3条答案
按热度按时间xghobddn1#
您的保存函数应该如下所示
如果
!empty( $woocommerce_text_field )
仅在$_POST['_ISBN_field']
具有某个值时返回true,则在$_POST['_ISBN_field']
为空时不更新发布 metabq3bfh9z2#
什么会:
返回?
我猜问题在于字段仍然包含一些值,即使它是空的。检查var_dump,然后调整if语句
我想声明应该是这样的:
mhd8tkvw3#
试试这个:
问候