【发布时间】:2026-01-05 10:25:01
【问题描述】:
我使用以下代码(添加在 functions.php 文件中)向管理产品添加了一个带有自定义输入字段的 Metabox:
// ****************************** COUNTRY ********************************
// /*
// |--------------------------------------------------------------------------
// | ADD CUSTOM PRODUCT META BOX - PAIS made in 10:37 07.10.2020
// | WOOCOMMERCE - PRODUTOS - EDITAR PRODUTO
// |--------------------------------------------------------------------------
// */
add_action( 'add_meta_boxes', 'add_product_metas_box_country', 50 );
function add_product_metas_box_country(){
add_meta_box( "options-country", __("Country Name"),'product_metas_box_country_content_callback', 'product', 'normal', 'high' );
}
// /*
// |--------------------------------------------------------------------------
// | ADD CUSTOM PRODUCT META BOX HTML INPUT - PAIS made in 10:37 07.10.2020
// | WOOCOMMERCE - PRODUTOS - EDITAR PRODUTO
// |--------------------------------------------------------------------------
// */
function product_metas_box_country_content_callback( $post ) {
$value = get_post_meta( $post->ID, 'country', true );
echo '<div id="mdiv">
<input type="text" style="width: 100%" name="country" value="'. $value .'" id="country" spellcheck="true" autocomplete="off" placeholder="'. __('Insira País') .'">
</div>';
}
///*
// |--------------------------------------------------------------------------
// | SAVE COUNTRY CUSTOM FIELD VALUE - PAIS made in 10:37 07.10.2020
// | WOOCOMMERCE - PRODUTOS - EDITAR PRODUTO
// |--------------------------------------------------------------------------
// */
add_action( 'woocommerce_admin_process_product_object', 'save_product_country_meta_value' );
function save_product_country_meta_value( $product ) {
if( isset($_POST['country']) ) {
$product->update_meta_data( 'country', sanitize_text_field( $_POST['country'] ) );
}
}
它有效:
现在,我在该自定义输入字段中插入的文本必须显示在产品标题和价格之间。
目标是在产品标题和价格之间以列表格式插入 5 个或更多不同的文本,并针对单个产品。
根据WooCommerce Archive Page [Visual Hook Guide] 教程,我正在尝试使用这些 Hooks 但魔术仍然没有发生:
使用钩子在functions.php文件中的商店页面上显示:
add_action( 'woocommerce_after_shop_loop_item', 'action_woocommerce_after_shop_loop_item', 20 ); // 1
add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 250, 0 ); // 2
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 15 ); // 3
add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); // 4
function woocommerce_template_loop_rating() {
global $product;
$country = $product->get_meta('country');
if ( $country) {
echo '<p class="stateandcity">'. $country .'</p>';
}
}
其中一些 Hooks 完全隐藏了价格,这不是目标。
请问我应该使用哪个钩子或过滤器来使魔术发生?
我唯一一个接近结果的 Hook 是数字 2。但如图所示,Hook 给我带来了双重结果,这个词两次。
我需要在产品标题和价格之间以列表格式呈现 5 个或更多单词。
附上结果照片 (The Word Brasil显示2次):
对任何帮助的预期感激之情
【问题讨论】:
标签: wordpress woocommerce wordpress-theming hook-woocommerce woocommerce-rest-api