• Почему wordpress не видит шаблон?

    deniscopro
    @deniscopro Куратор тега WordPress
    WordPress-разработчик, denisco.pro
    не вижу очевидную вещь конечно

    Самое очевидное с чего бы я начал: Вы точно подключаетесь к нужному серверу/папке? Например, если создать текстовый файл в корне сайта и попытаться открыть его в браузере, открывается?
    Ответ написан
    Комментировать
  • Как решить ошибку Use of undefined constant php - assumed 'php'?

    @andrejovdienko
    Проверьте чтобы в указанной строке открывающий тег <?php был отделен от последующего кода пробелом.
    Ответ написан
    5 комментариев
  • Как сделать плавную прокрутку страницы до якоря?

    BedwaRe
    @BedwaRe
    Пиши код
    $("body").on('click', '[href*="#"]', function(e){
    	var fixed_offset = 100;
    	$('html,body').stop().animate({ scrollTop: $(this.hash).offset().top - fixed_offset }, 1000);
    	e.preventDefault();
    });

    Во-первых, асинхронно (например, у меня отзывы подгружались с другого сервиса, с задержкой несколько секунд). Во-вторых, для всех ссылок, которые содержат символ # (являются якорями). В-третьих, у меня в проекте было фиксированное меню сверху, поэтому при прокрутке прямо по якорю часть контента перекрывалась, для решения этой проблемы предлагаю установить fixed_offset равный высоте фиксированного меню (опционально).
    Ответ написан
    8 комментариев
  • Как вывести на главную последние записи произвольных типов постов плагина pods в wordpress?

    @nozzy
    Symfony, Laravel, SQL
    $params = array( 
        'orderby' => 'date DESC',     
        'limit' => 10
     ); 
    
    $my_pod = pods( 'your_pods' )->find( $params ); 
    
    while ( $my_pod->fetch() ) { 
        echo '<p>' . $my_pod->display( 'field_name' ) . '</p>'; 
    }
    Ответ написан
    2 комментария
  • Как переместить пункт "Доставка" на странице оплаты в вордпресс?

    @theboban
    У меня получилось так:
    603a2bf229252798757463.png
    Код:
    <?php
    /*
     * Добавляем часть формы к фрагменту
     */
    
    add_filter( 'woocommerce_update_order_review_fragments', 'awoohc_add_update_form_billing', 99 );
    function awoohc_add_update_form_billing( $fragments ) {
    
    	$checkout = WC()->checkout();
    	ob_start();
    	
    	
    	echo '<div class="woocommerce-billing-fields__field-wrapper">';
    	$content = "<h3>Детали оплаты</h3>";
    	echo $content;
    	
    	echo '<table >';
    			
    			    do_action( 'woocommerce_review_order_before_shipping' );
    			          wc_cart_totals_shipping_html();
    			    do_action( 'woocommerce_review_order_after_shipping' );
    	echo '</table>';
    	
    
    	$fields = $checkout->get_checkout_fields( 'billing' );
    	foreach ( $fields as $key => $field ) {
    		if ( isset( $field['country_field'], $fields[ $field['country_field'] ] ) ) {
    			$field['country'] = $checkout->get_value( $field['country_field'] );
    		}
    		woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
    	}
    
    	echo '</div>';
    
    	$art_add_update_form_billing              = ob_get_clean();
    	$fragments['.woocommerce-billing-fields'] = $art_add_update_form_billing;
    
    	return $fragments;
    }
    
    /*
     * Убираем поля для конкретного способа доставки
     */
    add_filter( 'woocommerce_checkout_fields', 'awoohc_override_checkout_fields' );
    function awoohc_override_checkout_fields( $fields ) {
       // получаем выбранные метод доставки
       $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
    	
       // проверяем текущий метод и убираем не ненужные поля
       if ( 'local_pickup:13' === $chosen_methods[0] ) {
    	   
          unset( $fields['billing']['billing_company'] );
          unset( $fields['billing']['billing_address_1'] );
          unset( $fields['billing']['billing_address_2'] );
          unset( $fields['billing']['billing_city'] );
          unset( $fields['billing']['billing_postcode'] );
          //unset( $fields['billing']['billing_country'] );
          unset( $fields['billing']['billing_state'] );
    	  
       }
    	
    	if ( 'omniva_parcel_machines_ee' === $chosen_methods[0] ) {
          unset( $fields['billing']['billing_company'] );
          unset( $fields['billing']['billing_address_1'] );
          unset( $fields['billing']['billing_address_2'] );
          unset( $fields['billing']['billing_city'] );
          unset( $fields['billing']['billing_postcode'] );
          //unset( $fields['billing']['billing_country'] );
          unset( $fields['billing']['billing_state'] );
       }
    	
    	if ( 'edostavka-package-door:12:137' === $chosen_methods[0] ) {
          unset( $fields['billing']['billing_company'] );
          //unset( $fields['billing']['billing_address_1'] );
          unset( $fields['billing']['billing_address_2'] );
          //unset( $fields['billing']['billing_city'] );
          unset( $fields['billing']['billing_postcode'] );
          //unset( $fields['billing']['billing_country'] );
          unset( $fields['billing']['billing_state'] );
       }
       
       return $fields;
    }
    
    add_action( 'wp_footer', 'awoohc_add_script_update_shipping_method' );
    function awoohc_add_script_update_shipping_method() {
    	if ( is_checkout() ) {
    		?>
    		<!--Выполняем обновление полей при переключении доставки-->
    		<script>
                jQuery(document).ready(function ($) {
    
                    $(document.body).on('updated_checkout updated_shipping_method', function (event, xhr, data) {
                        $('input[name^="shipping_method"]').on('change', function () {
                            $('.woocommerce-billing-fields__field-wrapper').block({
                                message: null,
                                overlayCSS: {
                                    background: '#fff',
                                    'z-index': 1000000,
                                    opacity: 0.3
                                }
                            });
                        });
                        var first_name = $('#billing_first_name').val(),
                            last_name = $('#billing_last_name').val(),
                            phone = $('#billing_phone').val(),
                            email = $('#billing_email').val();
                            
                        $(".woocommerce-billing-fields__field-wrapper").html(xhr.fragments[".woocommerce-billing-fields"]);
                        $(".woocommerce-billing-fields__field-wrapper").find('input[name="billing_first_name"]').val(first_name);
                        $(".woocommerce-billing-fields__field-wrapper").find('input[name="billing_last_name"]').val(last_name);
                        $(".woocommerce-billing-fields__field-wrapper").find('input[name="billing_phone"]').val(phone);
                        $(".woocommerce-billing-fields__field-wrapper").find('input[name="billing_email"]').val(email);
                        $('.woocommerce-billing-fields__field-wrapper').unblock();
                    });
                });
    			
    			  
    		
    		</script>
    
    
    		<?php
    	}
    }

    CSS:
    .woocommerce-billing-fields__field-wrapper .woocommerce-billing-fields__field-wrapper {
      display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
    }
    #customer_details h3, #billing_country_field, #billing_city_field {
      order: -1;
    }
    p.nm-shipping-th-title, .woocommerce-shipping-totals.shipping th {
      display: none;
    }
    
    ul#shipping_method {
        padding: 20px;
        background: #fafafa;
    
    }
    .form-row {
        width: 100%;
    }
    
    .form-row-first, .form-row-last {
      width: 48% !important;
    }
    
    .woocommerce-billing-fields__field-wrapper table {
      width: 100%;
    }
    Ответ написан
    3 комментария
  • Как определяют номер телефона у посетителей сайта?

    @granty
    Куки исключены, браузер не сохраняет их и не хранит историю.

    1. Про evercookie слышали? А про Web Fingerprint?
    На хакере перечислена масса способов хранить ID на вашем компе без использования Куков и кэша, а технология Web Fingerprint позволяет хранить цифровой отпечаток компа, браузера на сервере банка: Фингерпринтинг конкретного ПК с точностью 99,24%, не спасает даже смена браузера.

    Если вы - клиент банка и заходили в его интернет-банкинг, он легко может вас опознать при использовании того же браузера и того же компа.
    А если у вас на мобиле установлено приложение интернет-банкинга - вы вообще под колпаком :)

    2. Если вы лазите по инету залогиненым в Вконтакте/Яндексе, то через backdoors в их API можно определить ваш профиль и все ваши данные.
    Сайт Соцфишинг работает на этом принципе.
    Сам банк тоже может использовать соцфишинг и ставить невидимый ифрейм на своё меню, и при клике вы автоматически авторизуетесь через аккаунт, например, Вконтакте. Зная ваш ID на Вконтакте, ваш телефон легко узнаётся, их базы регулярно сливаются и продаются

    PS: Узнать как конкретно вас "слил" и каким образом - невозможно без исследования конкретной ситуации.

    факультатив

    Всё вышеперечисленное - детский лепет по сравнению с тем, какие возможности имеет Google (и, частично, Яндекс с Apple).
    У всех дома стоит точка WiFi, к которой коннектится ваш комп и мобильник с Андроид. Через мобильник Гугл знает все номера телефонов, которые подключаются к этой точке доступа (и все аккаунты соцсетей в которые вы логинились с мобильника). Поэтому когда вы лезете Хромом с компа через эту же точку доступа - Гугль уже знает, что это вы (или один из ваших домочадцев). По GPS на мобильнике он знает даже адрес вашего проживания с точностью до подъезда.
    Так что мы все давно уже добровольно "чипованы", чего удивляться что о нас всё известно.
    Ответ написан
    Комментировать
  • Html код видео YouTube, растягивать высоту относительно ширины возможно?

    @tecs
    огромное спасибо.
    только добавлю для пионеров:

    <div class="video">
      <iframe id="youtube1" width="100%" src="https://www.youtube.com/embed/nWdInJYfcOY?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
    </div>
    Ответ написан
    Комментировать
  • Html код видео YouTube, растягивать высоту относительно ширины возможно?

    Anna_BS
    @Anna_BS
    .video {
        height: 0;
        position: relative;
        padding-bottom: 56.25%;
    }
    .video iframe {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
    }

    codepen
    Ответ написан
    Комментировать
  • Как сделать линии до и после текста в html css (картинка прилагается)?

    d4rkr00t
    @d4rkr00t
    Самый простой способ, как-то так: jsfiddle.net/JF38F/

    С абсолютным позиционирование поверх линии
    Ответ написан
    3 комментария