Support » Plugin: WooCommerce Shipping Method Display Style » Still displaying radio button list

Viewing 9 replies - 1 through 9 (of 9 total)
  • As I can see on the template files WooCommerce removed also the logic that dealed with that from woocommerce/templates/cart/cart-shipping.php.

    Can’t understand this useless move that would impact thousands of users.

    Old cart-shipping.php

    <?php
    /**
     * Shipping Methods Display
     *
     * In 2.1 we show methods per package. This allows for multiple methods per order if so desired.
     *
     * @author 		WooThemes
     * @package 	WooCommerce/Templates
     * @version     2.3.0
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
    	exit;
    }
    
    ?>
    <tr class="shipping">
    	<th><?php
    		if ( $show_package_details ) {
    			printf( __( 'Shipping #%d', 'woocommerce' ), $index + 1 );
    		} else {
    			_e( 'Shipping', 'woocommerce' );
    		}
    	?></th>
    	<td>
    		<?php if ( ! empty( $available_methods ) ) : ?>
    
    			<?php if ( 1 === count( $available_methods ) ) :
    				$method = current( $available_methods );
    
    				echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?>
    				<input type="hidden" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>" value="<?php echo esc_attr( $method->id ); ?>" class="shipping_method" />
    
    			<?php elseif ( get_option( 'woocommerce_shipping_method_format' ) === 'select' ) : ?>
    
    				<select name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>" class="shipping_method">
    					<?php foreach ( $available_methods as $method ) : ?>
    						<option value="<?php echo esc_attr( $method->id ); ?>" <?php selected( $method->id, $chosen_method ); ?>><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></option>
    					<?php endforeach; ?>
    				</select>
    
    			<?php else : ?>
    
    				<ul id="shipping_method">
    					<?php foreach ( $available_methods as $method ) : ?>
    						<li>
    							<input type="radio" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>" value="<?php echo esc_attr( $method->id ); ?>" <?php checked( $method->id, $chosen_method ); ?> class="shipping_method" />
    							<label for="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>"><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></label>
    						</li>
    					<?php endforeach; ?>
    				</ul>
    
    			<?php endif; ?>
    
    		<?php elseif ( ( WC()->countries->get_states( WC()->customer->get_shipping_country() ) && ! WC()->customer->get_shipping_state() ) || ! WC()->customer->get_shipping_postcode() ) : ?>
    
    			<?php if ( is_cart() && get_option( 'woocommerce_enable_shipping_calc' ) === 'yes' ) : ?>
    
    				<p><?php _e( 'Please use the shipping calculator to see available shipping methods.', 'woocommerce' ); ?></p>
    
    			<?php elseif ( is_cart() ) : ?>
    
    				<p><?php _e( 'Please continue to the checkout and enter your full address to see if there are any available shipping methods.', 'woocommerce' ); ?></p>
    
    			<?php else : ?>
    
    				<p><?php _e( 'Please fill in your details to see available shipping methods.', 'woocommerce' ); ?></p>
    
    			<?php endif; ?>
    
    		<?php else : ?>
    
    			<?php if ( is_cart() ) : ?>
    
    				<?php echo apply_filters( 'woocommerce_cart_no_shipping_available_html',
    					'<p>' . __( 'There are no shipping methods available. Please double check your address, or contact us if you need any help.', 'woocommerce' ) . '</p>'
    				); ?>
    
    			<?php else : ?>
    
    				<?php echo apply_filters( 'woocommerce_no_shipping_available_html',
    					'<p>' . __( 'There are no shipping methods available. Please double check your address, or contact us if you need any help.', 'woocommerce' ) . '</p>'
    				); ?>
    
    			<?php endif; ?>
    
    		<?php endif; ?>
    
    		<?php if ( $show_package_details ) : ?>
    			<?php
    				foreach ( $package['contents'] as $item_id => $values ) {
    					if ( $values['data']->needs_shipping() ) {
    						$product_names[] = $values['data']->get_title() . ' &times;' . $values['quantity'];
    					}
    				}
    
    				echo '<p class="woocommerce-shipping-contents"><small>' . __( 'Shipping', 'woocommerce' ) . ': ' . implode( ', ', $product_names ) . '</small></p>';
    			?>
    		<?php endif; ?>
    
    		<?php if ( is_cart() ) : ?>
    			<?php woocommerce_shipping_calculator(); ?>
    		<?php endif; ?>
    	</td>
    </tr>

    If you add the old cart-shipping.php to you your wp-content/themes/<your theme>/woocommerce/cart/cart-shipping.php than your problem will be solved for sure.

    Backup before any coding. With me this worked but I don’t promise that will work with you.

    No warranties of any kind, ok?
    If you don’t backup and things got weary don’t ask me for help 🙂

    Plugin Author MULTIDOTS

    (@dots)

    @lopo Lencastre de Almeida,

    Thanks for using our plugin,

    The plugin works with woocommerce 2.5.2 and We tested plugin with the same case and it works fine for us so if possible can you please provide screenshot of issue so that if there is an issue in plugin then we can sort it out.

    Thanks,
    Multidots

    Hi Multidots,
    Thanks for this plugin. This seems to be a great one if I just could get it to work.

    I installed the plugin and I can see the tab added to WooCommerce –> Settings –> “Woo Shipping Display Mode”
    I then selected ” Display shipping methods in a dropdown” from the list below:
    Woo Shipping Display Mode
    Display shipping methods with “radio” buttons
    X Display shipping methods in a dropdown

    I have already defined my shipping classes and enabled the flat rate shipping. But on my checkout page, I see the following message:
    Shipping : There are no shipping methods available. Please double check your address, or contact us if you need any help.

    Can you please let me know what else I need to do?

    FYI: I have installed WooCommerce: Version 2.5.2.

    Thanks,
    Jay

    jalinous please open a new issue or this will become a mess.

    @multidots

    I solved it recreating the code above in my template override.

    I check the version of WC and is 2.5.2

    Also checked the cart-shipping.php included in WC (at public_html/wp-content/plugins/woocommerce/templates/cart) and the code refering to 'woocommerce_shipping_method_format' is not there.

    Added it here below so you can see:

    <?php
    /**
     * Shipping Methods Display
     *
     * In 2.1 we show methods per package. This allows for multiple methods per order if so desired.
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/cart/cart-shipping.php.
     *
     * HOWEVER, on occasion WooCommerce will need to update template files and you (the theme developer).
     * will need to copy the new files to your theme to maintain compatibility. We try to do this.
     * as little as possible, but it does happen. When this occurs the version of the template file will.
     * be bumped and the readme will list any important changes.
     *
     * @see 	    http://docs.woothemes.com/document/template-structure/
     * @author 		WooThemes
     * @package 	WooCommerce/Templates
     * @version     2.5.0
     */
    if ( ! defined( 'ABSPATH' ) ) {
    	exit;
    }
    ?>
    <tr class="shipping">
    	<th><?php echo wp_kses_post( $package_name ); ?></th>
    	<td data-title="<?php echo esc_attr( $package_name ); ?>">
    		<?php if ( 1 < count( $available_methods ) ) : ?>
    			<ul id="shipping_method">
    				<?php foreach ( $available_methods as $method ) : ?>
    					<li>
    						<?php
    							printf( '<input type="radio" name="shipping_method[%1$d]" data-index="%1$d" id="shipping_method_%1$d_%2$s" value="%3$s" class="shipping_method" %4$s />
    								<label for="shipping_method_%1$d_%2$s">%5$s</label>',
    								$index, sanitize_title( $method->id ), esc_attr( $method->id ), checked( $method->id, $chosen_method, false ), wc_cart_totals_shipping_method_label( $method ) );
    
    							do_action( 'woocommerce_after_shipping_rate', $method, $index );
    						?>
    					</li>
    				<?php endforeach; ?>
    			</ul>
    		<?php elseif ( 1 === count( $available_methods ) ) :  ?>
    			<?php
    				$method = current( $available_methods );
    				printf( '%3$s <input type="hidden" name="shipping_method[%1$d]" data-index="%1$d" id="shipping_method_%1$d" value="%2$s" class="shipping_method" />', $index, esc_attr( $method->id ), wc_cart_totals_shipping_method_label( $method ) );
    				do_action( 'woocommerce_after_shipping_rate', $method, $index );
    			?>
    		<?php elseif ( ! WC()->customer->has_calculated_shipping() ) : ?>
    			<?php echo wpautop( __( 'Shipping costs will be calculated once you have provided your address.', 'woocommerce' ) ); ?>
    		<?php else : ?>
    			<?php echo apply_filters( is_cart() ? 'woocommerce_cart_no_shipping_available_html' : 'woocommerce_no_shipping_available_html', wpautop( __( 'There are no shipping methods available. Please double check your address, or contact us if you need any help.', 'woocommerce' ) ) ); ?>
    		<?php endif; ?>
    
    		<?php if ( $show_package_details ) : ?>
    			<?php echo '<p class="woocommerce-shipping-contents"><small>' . esc_html( $package_details ) . '</small></p>'; ?>
    		<?php endif; ?>
    
    		<?php if ( is_cart() && ! $index ) : ?>
    			<?php woocommerce_shipping_calculator(); ?>
    		<?php endif; ?>
    	</td>
    </tr>
    Plugin Author MULTIDOTS

    (@dots)

    Hello @lopo Lencastre de Almeida,

    Thank you for your suggestion but in our plugin we have override default woocommerce cart-shipping.php file and done same things. Please check our plugin file (/wp-content/plugins/woocommerce/templates/cart/cart-shipping.php)

    Please let us know if you need any help 🙂

    Thanks,
    Multidots

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘Still displaying radio button list’ is closed to new replies.