我有一家Woocommerce商店,当您点击“选择”按钮时,会按字母顺序排列不同的属性/变体。在产品页面上。我目前正试图弄清楚如何根据后端的ordening对它们进行排序。
具体来说:目前Small是放在Large之后,感觉并不那么直观。
任何帮助都会受到欢迎。我现在一直在谷歌搜索一小时,似乎无法找到解决方案。
我当前模板的HTML / PHP如下:
<?php
if ( is_array( $options ) ) {
if ( isset( $_REQUEST[ 'attribute_' . sanitize_title( $name ) ] ) ) {
$selected_value = $_REQUEST[ 'attribute_' . sanitize_title( $name ) ];
} elseif ( isset( $selected_attributes[ sanitize_title( $name ) ] ) ) {
$selected_value = $selected_attributes[ sanitize_title( $name ) ];
} else {
$selected_value = '';
}
// Get terms if this is a taxonomy - ordered
if ( taxonomy_exists( $name ) ) {
$orderby = wc_attribute_orderby( $name );
switch ( $orderby ) {
case 'name' :
$args = array( 'orderby' => 'name', 'hide_empty' => false, 'menu_order' => false );
break;
case 'id' :
$args = array( 'orderby' => 'id', 'order' => 'ASC', 'menu_order' => false, 'hide_empty' => false );
break;
case 'menu_order' :
$args = array( 'menu_order' => 'ASC', 'hide_empty' => false );
break;
}
$terms = get_terms( $name, $args );
foreach ( $terms as $term ) {
if ( ! in_array( $term->slug, $options ) )
continue;
echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $term->slug ), false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
}
} else {
foreach ( $options as $option ) {
echo '<option value="' . esc_attr( sanitize_title( $option ) ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $option ), false ) . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
}
}
}
?>
答案 0 :(得分:13)
你现在可能已经找到了解决方案,因为它非常简单(尽管我在浪费了5-6小时之后就知道了),但如果你还没有,那么就是这样。
对于前。在您的情况下,将小拖到表格顶部&amp; 大到底,这就是它。没有保存选项,所以不要混淆它,无论你在列表中拖动任何项目,它都会坚持并得到保存。
答案 1 :(得分:-4)
我有一个问题的解决方案。只需登录FTP,然后转到文件夹/wp-content/plugins/woocommerce/includes/admin/post-types/meta-boxes/class-wc-meta-box-product-data.php
在该行中没有885替换为以下数组:
$args = array(
'post_type'=>'product_variation',
'post_status' => array( 'private', 'publish' ),
'posts_per_page' => -1,
'meta_key' => 'attribute_pa_woo-color', //rename with your attributes
'post_parent' => $post->ID,
'meta_query' => array(
array(
'key' => 'attribute_pa_woo-color' //rename with your attributes
),
array(
'key' => 'attribute_pa_woo-size' //rename with your attributes
)
)
);
目前,它会手动对属性进行排序。