列出所有显示其属性的变体,这些变体链接到 Woocommerce 产品循环的变体
List all variations displaying their attributes linked to the variation on Woocommerce products loop
我想为每个属性添加一个 link,以便在点击访问者时选择变体。
基本上每个词都加一个link,比如https://exampl.com/product/t-shirt/?attribute_pa_size=l。
根据 答案代码,我尝试使用以下方式插入术语 link:
$term_link = get_term_link( $term );
但它没有为选定的产品属性提供 link。
感谢任何帮助。
当你有多个属性时,变体的 link 是每个属性的术语的组合......所以你不能在术语本身上有 link,那将转到一个特定的变体,因为一个术语与多个变体相关。
所以你需要一些不同的东西。最好的方法是列出显示其属性的可变产品的所有可见变体 linked 到产品循环中的变体,如下所示:
add_action( 'woocommerce_after_shop_loop_item', 'product_variable_linked_variations_on_loop', 7 );
function product_variable_linked_variations_on_loop() {
global $product;
if( $product->is_type('variable') ) { // Only for variable products
$output = array(); // Initializing
// Loop through visible children Ids (variations ids)
foreach( $product->get_visible_children() as $variation_id ) {
$variation = wc_get_product($variation_id); // The varition object instance
$permalink = $variation->get_permalink(); // The link to the variation
$attributes = array(); // Initializing
// Loop through attributes
foreach( $variation->get_attributes() as $attribute => $value ) {
$attribute_label = wc_attribute_label( $attribute, $product );
$attribute_value = $variation->get_attribute($attribute);
$attributes[] = $attribute_label . ': ' . $attribute_value;
}
$output[] = '<a href="' . $permalink . '">' . implode(', ', $attributes) . '</a>';
}
echo '<div class="product-attributes">';
echo '<span>' . implode('</span><br><span>', $output) . '</span>';
echo '</div>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
我想为每个属性添加一个 link,以便在点击访问者时选择变体。
基本上每个词都加一个link,比如https://exampl.com/product/t-shirt/?attribute_pa_size=l。
根据
$term_link = get_term_link( $term );
但它没有为选定的产品属性提供 link。
感谢任何帮助。
当你有多个属性时,变体的 link 是每个属性的术语的组合......所以你不能在术语本身上有 link,那将转到一个特定的变体,因为一个术语与多个变体相关。
所以你需要一些不同的东西。最好的方法是列出显示其属性的可变产品的所有可见变体 linked 到产品循环中的变体,如下所示:
add_action( 'woocommerce_after_shop_loop_item', 'product_variable_linked_variations_on_loop', 7 );
function product_variable_linked_variations_on_loop() {
global $product;
if( $product->is_type('variable') ) { // Only for variable products
$output = array(); // Initializing
// Loop through visible children Ids (variations ids)
foreach( $product->get_visible_children() as $variation_id ) {
$variation = wc_get_product($variation_id); // The varition object instance
$permalink = $variation->get_permalink(); // The link to the variation
$attributes = array(); // Initializing
// Loop through attributes
foreach( $variation->get_attributes() as $attribute => $value ) {
$attribute_label = wc_attribute_label( $attribute, $product );
$attribute_value = $variation->get_attribute($attribute);
$attributes[] = $attribute_label . ': ' . $attribute_value;
}
$output[] = '<a href="' . $permalink . '">' . implode(', ', $attributes) . '</a>';
}
echo '<div class="product-attributes">';
echo '<span>' . implode('</span><br><span>', $output) . '</span>';
echo '</div>';
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。