Ответы пользователя по тегу JavaScript
  • Как скрыть блок оплаты при выборе самовывоза wordpress?

    Всем привет!
    Опять таки , смотрю ни кто более аккуратного способа не предложил,поэтому вот мои
    5 копеек!
    Код проверил на теме storefront и всё работало.
    add_action( 'wp_footer', 'skryt_block_sposoba_oplaty',9999 );
    function skryt_block_sposoba_oplaty() {
    
    	// Создадим переменну со значением выбора способа доставки
    	$chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' )[0];
    
    	// Проверяем выбран ли по умолчанию т.е. при загрузки страницы "самовывоз"? 
    	if ( 0 === strpos( $chosen_shipping_methods, 'local_pickup:3' ) ){
    		?>
    		<!-- Если да , то...  -->
    		<script type="text/javascript">
    			jQuery(document).ready(function($) {
    				// Ждём когда на странице закончится Ajax
    				$( document ).ajaxStop(function() {
    					// После окончания (спустя мгновение) монипулируем DOM-элементами 
    					setTimeout(function(){
    						// Это наш список с выбором способа оплаты
    						var ViborMetodaOplaty = $('div#payment').find('ul.wc_payment_methods') ;
    						// Это пункт выбора способа доставки "самовывоз"
    						var Samovyvoz = $('input#shipping_method_0_local_pickup3') ;
    						// Если НЕ выбран "самовывоз",то...
    						if ( ! Samovyvoz.is(':checked')) {
    							// то показываем список с выбором способа оплаты
    							ViborMetodaOplaty.fadeIn("fast");
    							// Если ВЫБРАН "самовывоз",то...
    						}else{
    							// то через slideUp скрываем список с выбором способа оплаты
    							ViborMetodaOplaty.slideUp( "fast", function() {
    								ViborMetodaOplaty.fadeOut();
    							});
    						};
    					}, 100);
    				});			
    			});
    		</script>
    		<!-- А,что если по умолчанию т.е. при загрузки страницы НЕ ВЫБРАН "самовывоз"?  -->
    	<?php }else{
    		?>
    		<!-- Если так, то...  -->
    		<script type="text/javascript">
    			jQuery(document).ready(function($) {					
    				// Ждём когда на странице закончится Ajax
    				$( document ).ajaxStop(function() {		
    					// После окончания (спустя мгновение) монипулируем DOM-элементами				
    					setTimeout(function(){
    						// Это наш список с выбором способа оплаты
    						var ViborMetodaOplaty = $('div#payment').find('ul.wc_payment_methods') ;
    						// Это пункт выбора способа доставки "самовывоз"
    						var Samovyvoz = $('input#shipping_method_0_local_pickup3') ;
    						// Если ВЫБРАН "самовывоз",то...
    						if ( Samovyvoz.is(':checked')) {
    							// то через slideUp скрываем список с выбором способа оплаты
    							ViborMetodaOplaty.slideUp( "fast", function() {
    								ViborMetodaOplaty.fadeOut();
    							});
    							// Если НЕ выбран "самовывоз",то...
    						}else{
    							// то показываем список с выбором способа оплаты
    							ViborMetodaOplaty.fadeIn();
    						};
    					}, 100);
    				});			
    			});
    		</script>
    		<?php
    	}
    }

    Надеюсь поможет!
    Ответ написан
    1 комментарий