我正在尝试直接在商店页面上显示一些属性。属性全部收集在数据库中。为了更容易展示,我制作了一个屏幕截图,以便您可以更好地了解。现在的问题是,我可以用哪些代码来做到这一点。属性(始终有 4 个)应显示在带有图片和购买按钮的块下方的中心。如果我们能找到一种方法来做到这一点,我会非常高兴。非常感谢
好吧,我在 stackoverflow 上找到了一些代码...好消息是,我得到了我想要的结果/属性,坏消息是,在错误的页面上(商店页面而不是单个商店页面)。
这是代码:
add_action('woocommerce_after_shop_loop_item_title', 'display_custom_product_attributes_on_loop', 5 );
function display_custom_product_attributes_on_loop() {
global $product;
// Settings: Here below set your product attribute label names
$attributes_names = array('alter', 'bausteine', 'publicationdate', 'sku');
$attributes_data = array(); // Initializing
// Loop through product attribute settings array
foreach ( $attributes_names as $attribute_name ) {
if ( $value = $product->get_attribute($attribute_name) ) {
$attributes_data[] = $attribute_name . ': ' . $value;
}
}
if ( ! empty($attributes_data) ) {
echo '<div class="items" style="color: red;"><p>' . implode( '<br>', $attributes_data ) . '</p></div>';
}
}
此代码向我显示了商店页面上的属性和结果,但我需要在单个商店页面/产品页面上使用它。
谢谢!
更改钩子名称然后检查
add_action('woocommerce_single_product_summary', 'display_custom_product_attributes_on_loop', 5 );
function display_custom_product_attributes_on_loop() {
global $product;
// Settings: Here below set your product attribute label names
$attributes_names = array('alter', 'bausteine', 'publicationdate', 'sku');
$attributes_data = array(); // Initializing
// Loop through product attribute settings array
foreach ( $attributes_names as $attribute_name ) {
if ( $value = $product->get_attribute($attribute_name) ) {
$attributes_data[] = $attribute_name . ': ' . $value;
}
}
if ( ! empty($attributes_data) ) {
echo '<div class="items" style="color: red;"><p>' . implode( '<br>', $attributes_data ) . '</p></div>';
}
}