我想在产品卡上添加自定义字段,如下所示。我为此编写的代码有效,但我添加的自定义字段出现在类别名称上方。
我希望它出现在星星和产品名称之间,如图所示。
我目前使用的代码是
add_action( 'woocommerce_after_shop_loop_item_title', 'woo_show_product_id', 20);
function woo_show_product_id() {
global $product;
echo $product->id;
}
我该如何做到这一点或需要进行哪些调整?
最佳答案
在 includes/wc-template-hooks.php我们可以发现:
add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 );
因此将优先级从 20 更改
add_action( 'woocommerce_after_shop_loop_item_title', 'woo_show_product_id', 20);
至 4 在星级评级之前显示您的自定义字段
add_action( 'woocommerce_after_shop_loop_item_title', 'woo_show_product_id', 4 );
优先级:用于指定与特定操作关联的功能的执行顺序。较低的数字对应于较早的执行,具有相同优先级的函数按照它们添加到操作的顺序执行。默认值:10
注意:从 WooCommerce 3.0 开始使用 $product->get_id();
因此,要回答您的问题,您可以使用
- 通过
woocommerce_after_shop_loop_item_title
function woo_show_product_id() {
global $product;
// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
// Get Product ID
echo $product->get_id();
}
}
add_action( 'woocommerce_after_shop_loop_item_title', 'woo_show_product_id', 4 );
或
来自 includes/wc-template-hooks.php 的其他一些钩子(Hook)
add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
然后你会获得优先权11
- 通过
woocommerce_shop_loop_item_title
function woo_show_product_id() {
global $product;
// Is a WC product
if ( is_a( $product, 'WC_Product' ) ) {
// Get Product ID
echo $product->get_id();
}
}
add_action( 'woocommerce_shop_loop_item_title', 'woo_show_product_id', 11 );
关于php - 在 WooCommerce 存档页面上显示产品名称和星级评级之间的自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65600189/