在Woocommerce商店中更改产品页面上的属性/变体的字母排序

Jan*_*Jan 7 php woocommerce

我有一个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>';
            }

        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

Vik*_*kas 15

你现在可能已经找到了解决方案,因为它非常简单(虽然我浪费了5-6小时后才知道),但是如果你没有,那么就是这样.

  1. 从管理面板中,选择产品>>属性.
  2. 在那里,编辑Size属性并将Default排序顺序更改为"Custom Ordering"并保存.
  3. 返回"属性"页面,然后单击"大小"属性的"配置项".现在,在值表上,按照要在前端显示的任何顺序向上或向下拖动项目.

对于前者 在你的情况下,拖动到桌面的顶部和到底,这就是它.没有保存选项,所以不要混淆它,无论你在列表中拖动任何项目,它都会坚持并得到保存.