Ответы пользователя по тегу WordPress
  • Как сделать возможным для записи одного произвольного типа установить родителем запись другого типа?

    devellopah
    @devellopah Автор вопроса
    нашёл интересный поход (вдруг кому пригодится)
    Ответ написан
    Комментировать
  • Как сделать под страницу новости Wordress?

    devellopah
    @devellopah
    сделай переключатели, при клике на "процесс" добавляй /proccess в url(типа подгружаешь страницу по ajax).

    p.s. у сайта, на который ты ссылаешься, это реализовано через вложенный роутинг на vuejs. в wordpress таких возможностей нет.
    Ответ написан
    Комментировать
  • Сколько в среднем стоит такой объем выполненной работы?

    devellopah
    @devellopah
    Если брать средний магазин(типичный), среднее качество работы исполнителя, то вёрстка и посадка на wordpress выйдет примерно в 30 000 рублей. Несмотря на то, что встречаются заказчики готовые платить за качество, к сожалению, большинство заказчиков гонится за низкой стоимостью, поэтому, чаще всего, вам даже этих денег не заплатят. Надо ещё учитывать, уровень этой работы относительно несложный, поэтому и количество откликов будет в районе 20-30, предоставляя заказчику огромный выбор исполнителей. Одно дело посадка на wordpress, другое - посадка на laravel или django, например.
    Ответ написан
    Комментировать
  • Как отправить содержимое корзины на почту с помощью cf7?

    devellopah
    @devellopah Автор вопроса
    в-общем, нашёл такой фильтр wpcf7_posted_data и вроде всё было неплохо
    function krona_filter_wpcf7_posted_data( $posted_data ) {
    	// make filter magic happen here...
    
    	if( isset( $posted_data['your-cart'] ) ) {
    		$posted_data['your-cart'] = "<span style='color: green; text-style: italic;'>здесь будет информация о товарах</span>";
    	}
    
        return $posted_data;
    };
    add_filter( 'wpcf7_posted_data', 'krona_filter_wpcf7_posted_data', 10, 1 );


    ... и заработало, но, когда попытался сделать такое...
    $count = WC()->cart->get_cart_contents_count();
    
    	if( isset( $posted_data['your-cart'] ) ) {
    		$posted_data['your-cart'] = "<span style='color: green; text-style: italic;'>всего товаров в корзине" . $count . "</span>";
    	}


    получил 500 ошибку при отправке формы(

    Решил оставить пока и попробовать через js и сделал так

    $("#wpcf7-f44-o5 .wpcf7-submit").on('click', function(e) {
    		e.preventDefault();
    		var $form = $(this.form);
    
    		var $cart = $('#side_cart');
    
    		var quantity = '<div>Товаров в корзине: ' + $cart.data('count') + ' шт.</div>';
    		var price = '<div>На сумму: ' + $cart.data('total') + ' руб.</div>';
    
    		var info = $cart.find('.js-side-cart-item').map(function(i, el) {
    			var $item = $(el);
    			return "<div>" + $item.data('name') + ", цена " + $item.data('price') + " руб, кол-во " + $item.data('quantity') + " шт.</div>";
    		}).get().join('');
    
    		$form.find('[name="your-cart"]').val('<div>Корзина</div>' + quantity + price + info + '</div>');
    
    		$form.trigger('submit');
    	});


    Не самое лучшее решение, предпочтительнее было бы через php, но что-то не выходит через хуки cf7 добиться желаемого.
    Ответ написан
  • Как получить данные из формы Contact Form 7?

    devellopah
    @devellopah
    почему бы не добавить скрытое поле в формы, типа
    [hidden your-subject "такая-то форма"]
    Ответ написан
    Комментировать
  • Как карточку товара Woocommerce поделить на три колонки?

    devellopah
    @devellopah
    тебе нужно переопределить content-single-product.php следующим образом:
    <?php
    /**
     * The template for displaying product content in the single-product.php template
     *
     * This template can be overridden by copying it to yourtheme/woocommerce/content-single-product.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     https://docs.woocommerce.com/document/template-structure/
     * @package WooCommerce/Templates
     * @version 3.6.0
     */
    
    defined( 'ABSPATH' ) || exit;
    
    global $product;
    
    /**
     * Hook: woocommerce_before_single_product.
     *
     * @hooked wc_print_notices - 10
     */
    do_action( 'woocommerce_before_single_product' );
    
    if ( post_password_required() ) {
    	echo get_the_password_form(); // WPCS: XSS ok.
    	return;
    }
    ?>
    <div id="product-<?php the_ID(); ?>" <?php wc_product_class( '', $product ); ?>>
    
    	<div class="container">
    		<div class="row">
    
    			<!-- это галерея что слева -->
    			<div class="col-lg-6">
    				<?php
    				/**
    				 * Hook: woocommerce_before_single_product_summary.
    				 *
    				 * @hooked woocommerce_show_product_sale_flash - 10
    				 * @hooked woocommerce_show_product_images - 20
    				 */
    				do_action( 'woocommerce_before_single_product_summary' );
    				?>		
    			
    			</div>
    
    			<!-- это summary товара -->
    			<div class="col-lg-3">
    				<div class="summary entry-summary">
    					<?php
    					/**
    					 * Hook: woocommerce_single_product_summary.
    					 *
    					 * @hooked woocommerce_template_single_title - 5
    					 * @hooked woocommerce_template_single_rating - 10
    					 * @hooked woocommerce_template_single_price - 10
    					 * @hooked woocommerce_template_single_excerpt - 20
    					 * @hooked woocommerce_template_single_add_to_cart - 30
    					 * @hooked woocommerce_template_single_meta - 40
    					 * @hooked woocommerce_template_single_sharing - 50
    					 * @hooked WC_Structured_Data::generate_product_data() - 60
    					 */
    					do_action( 'woocommerce_single_product_summary' );
    					?>
    				</div>
    			</div>
    
    			<!-- здесь будет содержимое третьей колонки -->
    			<div class="col-lg-3">
    			
    			</div>
    
    		</div>
    	</div>
    
    	<!-- это уже табы, кросселы и апселы -->
    	<div class="container">
    	
    		<?php
    		/**
    		 * Hook: woocommerce_after_single_product_summary.
    		 *
    		 * @hooked woocommerce_output_product_data_tabs - 10
    		 * @hooked woocommerce_upsell_display - 15
    		 * @hooked woocommerce_output_related_products - 20
    		 */
    		do_action( 'woocommerce_after_single_product_summary' );
    		?>
    
    	</div>
    </div>
    
    <?php do_action( 'woocommerce_after_single_product' ); ?>

    p.s. в примере использована сетка из bs4
    Ответ написан
    Комментировать
  • Как сделать такие стрелки с цифрами в слайдере?

    devellopah
    @devellopah
    поиграйтесь с методами и событиями слайдера slick, там много чего интересного.
    я решал примерно такую задачу здесь

    UPDATE: пардон, не заметил что речь идёт именно о owl карусели, но, в любом случае, на slick тоже можно такое сделать.
    Ответ написан
    Комментировать
  • Как в Contact Form 7 отменить отправку формы?

    devellopah
    @devellopah
    примерно так
    $('.submit-button').click(function(event) {
      // если пусто, отменяем отправку
      if( !$('[name="text-123"]').val().trim() ) return event.preventDefault();
      // в противном случае...
    });
    Ответ написан
    Комментировать
  • Голый сайт, установка на WordPress?

    devellopah
    @devellopah
    ну я обычно генерирую болванку на https://underscores.me, затем верстаю прямо в ней (в твоём случае нужно будет разбить код на секции: шапку в header.php, подвал в footer.php, главную статическую в front-page.php и так далее), затем вывожу что нужно через произвольные поля и произвольные типы записей(таксономии).
    Стили кидаешь в style.css.
    Скрипты, а также стили и скрипты каких-то зависимостей (bootstrap, slick) подключаешь в functions.php
    В, принципе, на youtube достаточно материала чтобы во всём разобраться(как установить движок на локальный сервер, как интегрировать верстку), и, естественно, без кодекса никуда.
    Ответ написан
    Комментировать