我需要帮助才能在产品的前端添加自定义数据,如下所示:
如果PD#i刚刚添加,我希望它添加到产品的前端,此图像是一个示例:
刚刚在WooCommerce产品页面常规设置标签中添加了自定义字段,并借助:How to add a Custom Fields in Woocommerce 3.1感谢@Ankur Bhadania。
由于
答案 0 :(得分:1)
对于简单产品,您可以在添加到购物车之前的简单产品页面中使用 '_pd_number'
操作挂钩,将产品woocommerce_before_add_to_cart_button
自定义字段设置为:
add_action( 'woocommerce_before_add_to_cart_button', 'add_cf_before_addtocart_in_single_products', 1, 0 );
function add_cf_before_addtocart_in_single_products()
{
global $product;
$pd_number = get_post_meta( $product->get_id(), '_pd_number', true );
if( !empty( $pd_number ) )
echo '<div class="pd-number">PD # '. $pd_number .'</div><br>';
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
此代码在WooCommerce版本3+上进行测试并正常运行。
您还可以使用 woocommerce_cart_item_name
过滤器钩子在名称下方的购物车项目中输出您的产品自定义字段:
// Displaying the product custom field in the Cart items
add_filter( 'woocommerce_cart_item_name', 'add_cf_after_cart_item_name', 10, 3 );
function add_cf_after_cart_item_name( $name_html, $cart_item, $cart_item_key )
{
$product_id = $cart_item['product_id'];
if( $cart_item['variation_id'] > 0 )
$product_id = $cart_item['variation_id'];
$pd_number = get_post_meta( $product_id, '_pd_number', true );;
if( !empty( $pd_number ) )
$name_html .= '<br><span class="pd-number">PD # '.$pd_number .'</span>';
return $name_html;
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
此代码在WooCommerce版本3+上进行测试并正常运行。
这里我使用的代码他在评论中提供了仅用于测试的链接:
// Display Product settings Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
function woo_add_custom_general_fields() {
woocommerce_wp_text_input( array(
'id' => '_pd_number',
'label' => __( 'PD Number', 'woocommerce' ),
'placeholder' => 'PD# XXXXXX',
'desc_tip' => 'true',
'description' => __( 'Enter the PD Number of Product', 'woocommerce' )
));
}
// Save Product settings Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
$pd_number = $_POST['_pd_number'];
if( !empty( $pd_number ) )
update_post_meta( $post_id, '_pd_number', esc_attr( $pd_number ) );
}
相关答案:Override External Product URL to "Add to Cart" product button
答案 1 :(得分:0)
用于显示定制产品元信号产品页面使用2个钩子。根据您的要求使用任何一个。
1)在WooCommerce产品元之前显示。使用
woocommerce_product_meta_start
add_action( 'woocommerce_product_meta_start', 'woo_add_custom_general_fields_extra_info' );
function woo_add_custom_general_fields_extra_info()
{
global $woocommerce, $post;
echo "PD # ".get_post_meta( $post->ID, '_text_field', true );
}
2)在WooCommerce产品元之后显示。使用
woocommerce_product_meta_end
add_action( 'woocommerce_product_meta_end', 'woo_add_custom_general_fields_extra_info' );
function woo_add_custom_general_fields_extra_info()
{
global $woocommerce, $post;
echo "PD # ".get_post_meta( $post->ID, '_text_field', true );
}