在woocommerce中,我使用以下代码(取自this answer)在单个产品页面中显示自定义字段值:
// Enabling and Displaying Fields in backend
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
function woo_add_custom_general_fields() {
global $post;
echo '<div class="options_group">';
woocommerce_wp_select( array( // Select Field type
'id' => '_Stan',
'label' => __( 'Stan', 'woocommerce' ),
'description' => __( 'Podaj stan plyty.', 'woocommerce' ),
'desc_tip' => 'true',
'options' => array(
'' => __( 'Select product condition', 'woocommerce' ),
'1' => __('1', 'woocommerce' ),
'2' => __('2', 'woocommerce' ),
)
) );
echo '</div>';
}
// Save Fields values to database when submitted (Backend)
add_action( 'woocommerce_process_product_meta', 'woo_save_custom_general_fields' );
function woo_save_custom_general_fields( $post_id ){
// Saving custom field value
$posted_value = $_POST['_Stan'];
if( ! empty( $posted_value ) ){
update_post_meta( $post_id, '_Stan', esc_attr( $posted_value ) );
}
}
add_action( 'woocommerce_product_meta_start', 'woo_display_custom_general_fields_values', 50 );
function woo_display_custom_general_fields_values() {
global $product;
// compatibility with WC +3
$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
echo '<span class="stan">Stan: ' . get_post_meta( $product_id, '_Stan', true ) . '</span>';
}
我想在单个产品页面中显示包装器html标记(例如<div>
)类"hidden"
,具体取决于自定义字段值。
任何帮助将不胜感激。
答案 0 :(得分:0)
我有一个关于您正在使用的代码的更新。因此,请将此替换为此答案中的更新版本:Add a drop down to product edit pages in product data "General" settings tab
现在,您可以根据此自定义字段值构建一个自定义条件函数,用于显示或不显示特定的类标记:
// Custom Conditional function for "Stan" product option
function is_stan_defined(){
$stan = get_post_meta( get_the_id(), '_Stan', true );
return empty( $stan ) ? false : true;
}
代码进入活动子主题(或活动主题)的function.php文件。
USAGE示例
下面我们根据自定义字段值(空或不是)有条件地将"hidden"
类添加到<div>
html标记:
<?php $stan = is_stan_defined() ? '' : ' hidden'; ?>
<div class="wrapper<?php echo $stan; ?>">
<p>My content</p>
</div>
这是经过测试和运作的......