Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   window.location.href (https://javascript.ru/forum/misc/64461-window-location-href.html)

avrusha 13.08.2016 11:40

window.location.href
 
Есть вот такой код, найденный на просторах интернета, как поправить его чтобы он срабатывал на любой странице содержащей "checkout/order-pay/"
Заранее спасибо.
$(function(){
    var url = window.location.href; 

    if (url.indexOf('checkout/order-pay/*') > -1) { 
        $('li.payment_method_cheque').hide();
        $('div#wcpgsk-dialog-validation-errors').hide();
    } else { 
        $('li.payment_method_cheque').show();  
    } 
});

laimas 13.08.2016 14:00

if (~url.indexOf('checkout/order-pay/'))

warren buffet 13.08.2016 14:21

Убери звезду checkout/order-pay/* - зачем она тут нужна? И все будет работать.

avrusha 13.08.2016 19:31

Цитата:

Сообщение от warren buffet (Сообщение 425292)
Убери звезду checkout/order-pay/* - зачем она тут нужна? И все будет работать.

Попытка незнайки:lol: установить любое продолжение адреса.

warren buffet 13.08.2016 21:46

Стопудово это он с Greasemonkey потырил прием. )))

Кстати можно сократить искомое, если взять

if(window.location.pathname.indexOf('/order-pay')>-1)

поскольку последний адрес указывает на action как правило, а checkout скорее всего контроллер, то есть сучность общего порядка.

avrusha 14.08.2016 21:50

Цитата:

Сообщение от warren buffet (Сообщение 425342)
Стопудово это он с Greasemonkey потырил прием. )))

Кстати можно сократить искомое, если взять

if(window.location.pathname.indexOf('/order-pay')>-1)

поскольку последний адрес указывает на action как правило, а checkout скорее всего контроллер, то есть сучность общего порядка.

увы, но не работает.

warren buffet 15.08.2016 13:11

Значит у тебя нет таких путей нигде.

avrusha 15.08.2016 21:58

извиняюсь, потерялась часть, вероятно, существенной информации при переносе вопроса с форума на форум...

Есть шаблон payment.php и на основе него создаются страницы checkout и checkout/order-pay.
Нужно чтобы на одной странице скрылся блок а и показался блок б, а на второй наоборот.

К сожалению единственный способ пропустить оплату через яндекс.кассу после подтверждения заказа.

warren buffet 15.08.2016 22:18

Короче, кроме адресов у тебя там еще ажно два элемента ищутся, успешность нахождения которых ты не проверяешь, а сразу лупишь метод. Проверяй все.

var p = location.pathname;

if(p.indexOf('checkout') > -1)
   console.log('there is');


Потом проверяй есть ли нужные элементы и на какой странице что есть.

laimas 16.08.2016 00:58

Цитата:

Сообщение от avrusha
Есть шаблон payment.php и на основе него создаются страницы checkout и checkout/order-pay.


И вас не удивляет то факт, что сервер без проблем создает две страницы, но при этом не может понять, что надо показать/скрыть при этом нечто? Зачем вам вообще JS здесь и поиск в url?

warren buffet 16.08.2016 08:27

Затем что у ТС движок, в котором он не разбирается и не станет, ибо таких задач у этой категории веб-дизайнеров не бывает. Они берут готовое платье и пытаются мелкими стежками подогнать по телу. На форумах они создают 90 процентов трафика эти бедные халявщики.

laimas 16.08.2016 13:07

Цитата:

Сообщение от warren buffet
Затем что у ТС движок, в котором он не разбирается и не станет

Я не тебя спрашивал, свое предположение сам знаешь куда засунь, я же читаю, что он соображает, что по шаблону готовятся две страницы. Не суди по себе о всех, если ты не хрена не понимаешь, то это еще не означает, что и остальные тоже.

avrusha 16.08.2016 21:11

Цитата:

Сообщение от warren buffet (Сообщение 425579)
Затем что у ТС движок, в котором он не разбирается и не станет, ибо таких задач у этой категории веб-дизайнеров не бывает. Они берут готовое платье и пытаются мелкими стежками подогнать по телу. На форумах они создают 90 процентов трафика эти бедные халявщики.

Не стоит всех судить по себе... кто где разбирается, кто кем работает...
Вроде эта платформа и создавалась для тех кто в создание сайтов ничего не понимает... ни к каким дизайнерам я не отношусь... 90% трафика не бедные халявщики, а те кто пытаются сделать самостоятельно, а не платить за довольно посредственные работы freelance и тп.

Если вы считаете, что вам надо заплатить за это, не вопрос... называйте цену...

avrusha 16.08.2016 21:14

Цитата:

Сообщение от laimas (Сообщение 425572)
И вас не удивляет то факт, что сервер без проблем создает две страницы, но при этом не может понять, что надо показать/скрыть при этом нечто? Зачем вам вообще JS здесь и поиск в url?


Не удивляет, я прекрасно понимаю, что не сходу найти различия между функциями и вероятно есть возможность учитывать именно указанный фрагмент, игнорирую оставшуюся часть.
К сожалению ни один плагин онлайн оплаты не предоставляет возможность отложить оплату до проверки заказа... Приходится лепить костыли.

laimas 17.08.2016 01:56

Цитата:

Сообщение от avrusha
не сходу найти различия между функциями

Почему обязательно функции. ) Если сервер формирует из одного шаблона два различных контента, то сделать это можно только по условию, которое задается параметром запроса. Параметром же запроса как раз и является URL.

warren buffet 17.08.2016 09:27

Цитата:

Сообщение от avrusha
90% трафика не бедные халявщики

Бедные бедные, вот один из них пишет:

Цитата:

Сообщение от avrusha
К сожалению ни один плагин онлайн оплаты

Плагины и костыли к плагинам - это удел бедных. Кто зарабатывает на сайте, тот заказывает свои скрипты без подгонки чужих бредней.

warren buffet 17.08.2016 09:30

Цитата:

Сообщение от avrusha
возможность отложить оплату до проверки заказа...

Escrow счет заведи себе болезный. Так работают ибей, али, амазон и все остальные у кого есть деньги.

avrusha 17.08.2016 21:55

Цитата:

Сообщение от warren buffet (Сообщение 425733)
Escrow счет заведи себе болезный. Так работают ибей, али, амазон и все остальные у кого есть деньги.

Вам же предложили оплату... но нет, все равно, что то не так)))
Прежде чем раздавать советы, познакомьтесь со законом о персональных данных, запрещающий использовать и escrow и mailchimp и тд и тп.
Да и к чему этот "умный" совет, о какой сумме денег мы говорим?:lol:

warren buffet 18.08.2016 11:16

Вот оно что, ну так ты выдай юзеру соглашение на использование, он чекбокс нажал - все стало законным.

Короче, вылаживай те самые php файлы и посмотрим где там чего отключить включить на фронтире.

avrusha 18.08.2016 13:12

Цитата:

Сообщение от warren buffet (Сообщение 425907)
Вот оно что, ну так ты выдай юзеру соглашение на использование, он чекбокс нажал - все стало законным.

Короче, вылаживай те самые php файлы и посмотрим где там чего отключить включить на фронтире.

<?php
/**
 * Checkout Payment Section
 *
 * @author 		WooThemes
 * @package 	WooCommerce/Templates
 * @version     2.3.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

?>


<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    var p = location.pathname;
    if(p.indexOf('order-pay') != -1)
     { 
        $('li.payment_method_cheque').hide();
        $('div#wcpgsk-dialog-validation-errors').hide();
    }  
});

$(function(){
    var url = window.location.href; 

    if (url.indexOf('checkout') > -1) { 
        $('li.payment_method_kassa').hide();
        $('div#wcpgsk-dialog-validation-errors').hide();
    }  
});
</script>



<?php if ( ! is_ajax() ) : ?>
	<?php do_action( 'woocommerce_review_order_before_payment' ); ?>
<?php endif; ?>

<div id="payment" class="woocommerce-checkout-payment">
	<?php if ( WC()->cart->needs_payment() ) : ?>
	<ul class="payment_methods methods">
		<?php
			if ( ! empty( $available_gateways ) ) {
				foreach ( $available_gateways as $gateway ) {
					wc_get_template( 'checkout/payment-method.php', array( 'gateway' => $gateway ) );
				}
			} else {
				if ( ! WC()->customer->get_country() ) {
					$no_gateways_message = __( 'Please fill in your details above to see available payment methods.', 'woocommerce' );
				} else {
					$no_gateways_message = __( 'Sorry, it seems that there are no available payment methods for your state. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' );
				}

				echo '<p>' . apply_filters( 'woocommerce_no_available_payment_methods_message', $no_gateways_message ) . '</p>';
			}
		?>
	</ul>
	<?php endif; ?>

	<div class="form-row place-order">

		<noscript><?php _e( 'Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'woocommerce' ); ?><br/><input type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php _e( 'Update totals', 'woocommerce' ); ?>" /></noscript>

		<?php wp_nonce_field( 'woocommerce-process_checkout' ); ?>

		<?php do_action( 'woocommerce_review_order_before_submit' ); ?>

		

		<?php if ( wc_get_page_id( 'terms' ) > 0 && apply_filters( 'woocommerce_checkout_show_terms', true ) ) : ?>
			<p class="form-row terms">
				<label for="terms" style="margin-top: 0px !important;" class="checkbox"><?php printf( __( 'I&rsquo;ve read and accept the <a href="%s" target="_blank">terms &amp; conditions</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'terms' ) ) ); ?></label>
				<input type="checkbox" class="input-checkbox" style="margin-top: 6px !important;" name="terms" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) ), true ); ?> id="terms" />
			</p>
		<?php endif; ?>
		<?php echo apply_filters( 'woocommerce_order_button_html', '<input type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '" />' ); ?>

		<?php do_action( 'woocommerce_review_order_after_submit' ); ?>

	</div>

	<div class="clear"></div>
</div>

<?php if ( ! is_ajax() ) : ?>
	<?php do_action( 'woocommerce_review_order_after_payment' ); ?>
<?php endif; ?>

warren buffet 18.08.2016 13:28

Понятно. Придется вернуться к нашим баранам. Твой плугин написан чудовищем в угребищном стиле для чудовищного WP, то есть бред там зашит намертво. Это не тот файл, но искать другие файлы не надо. Сделаем как положено - то есть угребищно.

Итак, тут две функции, одна скрывать какие-то элементы если в путях есть checkout, вторая скрывает еще парочку, если в путях есть order-pay, то есть на адресе с checkout/order-pay сработают обе.

Теперь чего ты хочешь еще отключить?

warren buffet 18.08.2016 13:37

Или эти функции ты сам уже приписал? Короче, ну его нахрен этот вордпресс. Жуткая вонючая помойка. Как только люди к ней вообще прикасаются.


Часовой пояс GMT +3, время: 11:18.