• Hello,

    My client wants the functionality of displaying (remember not choosing) his given values for the attributes in the simple formal way of writing paragraph and separating it with comma, e.g. For the attribute of Color -> He want to have Blue, Red, Orange. These are just for displaying. These also need to show under product filter so I can simply cannot type the values and set the attribute. I’ve done everything and reached the last level I suppose:

    <table class="variations" cellspacing="0">
    			<tbody>
    				<?php $loop = 0; foreach ( $attributes as $name => $options ) : $loop++; ?>
    					<tr>
    						<td class="label"><label for="<?php echo sanitize_title($name); ?>"><?php echo wc_attribute_label( $name ); ?></label></td>
    						<td class="value"><select id="<?php echo esc_attr( sanitize_title( $name ) ); ?>" name="attribute_<?php echo sanitize_title( $name ); ?>">
    							<option value=""><?php echo __( 'Choose an option', 'woocommerce' ) ?>&hellip;</option>
    				<?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>';
    										}
    
    									}
    								}
    							?>
    						</select> <?php
    							if ( sizeof($attributes) == $loop )
    								echo '<a class="reset_variations" href="#reset">' . __( 'Clear selection', 'woocommerce' ) . '</a>';
    						?></td>
    					</tr>
    		        <?php endforeach;?>
    			</tbody>
    		</table>

    This is variation.php code where I’m struck at. There might be multi select values for the attributes for that. Is it possible to have such thing?

    https://www.ads-software.com/plugins/woocommerce/

Viewing 1 replies (of 1 total)
  • I don’t know if i understand your issue correctly or not .

    for multiselect you can use this jquery plugin

    https://harvesthq.github.io/chosen/

    Even if you get success in adding multiselect instead of single select by changing variable.php file code , you will require lot of js/jquery code change in add-to-cart-variation.js (core js file which handles variation selection on variable product page).

Viewing 1 replies (of 1 total)
  • The topic ‘How to display all values but not in SELECT OPTION dropdown’ is closed to new replies.