• Импрорт товаров в WooCommerce. Можно ли пересчитать цены при импорте?

    @Gedonist Автор вопроса
    Как и ожидалось, есть штатное решение "из коробки" в WP ALL Import Pro.
    Нашел здесь.

    Там два примера, на базе первого примера можно выкинуть слово "более" из поля кол-во. Делается добавлением вместо значения кол-ва выражения на PHP:
    [str_replace(",", "", {title[1]})]
    где вместо {title[1]} поля кол-ва.

    Увеличение цены делается через второй пример, добавления сторонней php функции в function editor при настройке импорта. Вот сама функция:
    function round_price( $price = null, $multiplier = 1, $nearest = .01, $minus = 0 ) {
        if ( !empty( $price ) ) {
    		// strip any extra characters from price
    		$price = preg_replace("/[^0-9,.]/", "", $price);
    		// perform calculations
            return ( round ( ( $price * $multiplier ) / $nearest ) * $nearest ) - $minus; 
        }
    }

    А в поле "цена" вызываем её с параметрами для конкретного значения, например вот так:
    [round_price({price[1]},"1.5","10",".01")]
    С помощью этой функции можно менять цену на заданный процент, округлять до нужного кол-ва знаков, и даже отнимать одну копейку, чтобы делать цену в формате 17,99$
    Ответ написан
    Комментировать
  • Как в вордпрессе правильно прописать условие - выводить кнопку "ответить" только для админа..?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В шаблоне:

    <?php if ( is_user_logged_in() && current_user_can( 'administrator' ) ) : ?>
        <!-- код кнопки -->
    <?php endif; ?>
    Ответ написан
    Комментировать
  • Как сделать редирект с одной папки на другую?

    @ShamblerR
    Просто, вопервых уметь полозваться гуглом, есть часть вопросов которые реально можно решить самому. И этот относится к нему.

    Теперь по теме
    RewriteBase /
    RewriteRule ^main-folder/old-folder/(.*)$ /main-folder/new-folder/$1 [L,R=301]


    по хорошему еще бы добавить
    RewriteCond %{REQUEST_URI}
    Ответ написан
    3 комментария
  • Как скрыть стоимость доставки в Woocommerce на странице оформления заказа (скрин)?

    vova87
    @vova87
    Разработка сайтов на wordpress
    Как вариант:
    .woocommerce-shipping-methods label{ position: relative; }
    .woocommerce-shipping-methods label span{ display: none;} 
    .woocommerce-shipping-methods label:after {
        content: '';
        height: 25px;
        width: 3px;
        position: absolute;
        right: 0;
        top: 0;
        background: #fff;
    }
    Ответ написан
    Комментировать
  • Как сделать фильтр woocommerce?

    jimmykoks
    @jimmykoks
    В парочке своих проектов использовал WOOF - WooCommerce Products Filter. Имеет множество настроек и вариантов использования.
    Ссылка на codecanyon
    Тут nulled за 250р.
    Ответ написан
    Комментировать
  • Как использовать функции woocommerce?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Так же, как и функции WordPress. Разумеется, если под функциями вы имеете в виду template tags. Например:
    <?php woocommerce_login_form(); ?>
    Обратите внимание на разницу между вашим примером и моим. Имя функции, потом скобки, и обязательно точка с запятой. Почитайте про основы PHP, синтаксис. Функции WooCommerce (как и WP) - это обычные функции, написанные на языке PHP и должны соответствовать его синтаксису.

    ЗЫ: Обычно, если в имени функции есть слово get, это означает, что данная функция не выведет на страницу то, что вы ожидаете, а лишь вернет значение, которое можно далее использовать, например:
    <?php echo get_terms(); ?>
    Этот код принудительно отправит результат выполнения функции на вывод. Или же:
    <?php 
    $terms = get_terms(); // сохранили результат
    echo $terms; // выводим его или делаем что-то еще
    ?>
    Ответ написан
    Комментировать
  • Как в woocommerce организовать произвольную оплату услуг?

    Redjek
    @Redjek
    Множество историй, коль желаешь расскажу!
    Да, можно, отчего нет то, называется это Name Your Price. один из самых известных..
    YITH WooCommerce Name Your Price
    а так еще с десяток есть
    Ответ написан
    3 комментария
  • Как сделать личный кабинет с услугами в WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    мне нужно сделать функцию личного кабинета для каждого пользователя

    плагин Wp Recall для создания ЛК
    https://ru.wordpress.org/plugins/wp-recall/

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

    по эл. почте проблем нет, а вот, по номеру телефона с последующей отправкой смс для подтверждения - смотрите в сторону интеграции с АПИ стороннего сервиса.

    В личном кабинете нужны функции подачи заявок на подключении каких-либо услуг/ Должен быть какой-то список этих услуг со стоимостями и описанием. И чтобы потом эти заявки приходили определенному человеку на электронную почту или еще куда-нибудь.

    Кастомный тип записи + кастомные поля (ACF). Для самой формы можете использовать acf_form()
    https://ru.wordpress.org/plugins/advanced-custom-f...

    Так же в личном кабинете должны отображаться подключенные услуги, которые будут туда добавляться администратором.

    Все так же сводится к кастомным типам записей и к boolean вкл / выкл (+ дата подключения, дата исстечения)

    Если нужно оплату принимать сразу на сайте, то либо напишите платежный шлюз для выбранной платежной системы, либо вукомерц с выбранным плагином оплаты.
    Ответ написан
    Комментировать
  • Как поменять местами цену с названием?

    vova87
    @vova87
    Разработка сайтов на wordpress
    Открыть content-single-product.php, если это страница одного товара.
    В ней есть такой код:
    <?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' );
    		?>


    В нем нужно отключить тайтл и цену, и подключить в том порядке который вам нужен:

    <?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
    			 */
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 5 );
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 9 );
    
    			do_action( 'woocommerce_single_product_summary' );
    		?>


    В итоге цена будет выше заголовка.

    Для страницы архива, нужно открыть файл content-product.php
    В нем есть такой код:

    <?php
    
    	/**
    	 * woocommerce_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_title - 10
    	 */
    	do_action( 'woocommerce_shop_loop_item_title' );
    
    	/**
    	 * woocommerce_after_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_rating - 5
    	 * @hooked woocommerce_template_loop_price - 10
    	 */
    	do_action( 'woocommerce_after_shop_loop_item_title' );
    			
    		?>


    Их нужно поменять местами

    <?php
    
             /**
    	 * woocommerce_after_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_rating - 5
    	 * @hooked woocommerce_template_loop_price - 10
    	 */
    	do_action( 'woocommerce_after_shop_loop_item_title' );
    
    	/**
    	 * woocommerce_shop_loop_item_title hook.
    	 *
    	 * @hooked woocommerce_template_loop_product_title - 10
    	 */
    	do_action( 'woocommerce_shop_loop_item_title' );
    			
    		?>
    Ответ написан
    2 комментария
  • Как задать class в коде php?

    QuestYouCraft
    @QuestYouCraft
    Вариант 1:
    <style>
    .Log-In {
    <!--Здесь прописать какие-либо стили-->
    }
    </style>

    // Здесь был какой-то код..
    } else {
          $links['register'] = array(
            'label' => esc_html__('<p class="Log-In">Войти</p>', 'woodmart'),
            'url' => $account_link
          );

    Или вариант 2:
    // Здесь был какой-то код..
    } else {
          $links['register'] = array(
            'label' => esc_html__('<p style="Здесь прописать какие-либо стили">Войти</p>', 'woodmart'),
            'url' => $account_link
          );
    Ответ написан
    2 комментария
  • Может ли тег a содержать внутри div?

    @FabiBoom
    Да может, но все зависти от родителя(по спецификации):
    <section>
       <a href="#"> 
                <div>МОЖНО</div>
        </a>
    </section>
    
    <span>
       <a href="#"> 
                <div>Нельзя</div>
        </a>
    </span>


    То есть если в родитель ссылки можно вставить div, то и в a можно )))
    Ответ написан
    Комментировать
  • Как сделать простейший фильтр на сайте?

    milokmurlika
    @milokmurlika
    Няшка
    Тут есть пример реализации простого фильтра и сортировки https://razorjack.net/quicksand/demos/one-set-clon...
    Ответ написан
    Комментировать
  • Как вывести атрибуты товаров woocommerce?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Что бы не получать таких ошибок, нужно делать проверку, а не пуста ли переменная $subheadingvalues. Но это так. А вообще в самом плагине все до вас написано. Атрибуты выводятся в товаре в табе "доп информация", посмотрим код этой табы. plugins/woocommerce/templates/single-product/tabs/additional-information.php
    Код там такой <?php $product->list_attributes(); ?> используется метот list_attributes(); Можно на этом остановиться и в своем шаблоне написать
    global $product;
    $product->list_attributes();

    Но получим готовую разметку в виде таблицы. Посмотрим, что делает функция list_attributes();
    public function list_attributes() {
    		wc_get_template( 'single-product/product-attributes.php', array(
    			'product'    => $this
    		) );
    	}

    Идем в папку за нужным файлом plugins/woocommerce/templates/single-product/product-attributes.php
    Помимо прочего в нем видим
    $attributes = $product->get_attributes();
    .........
    <?php foreach ( $attributes as $attribute ) :
    		if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) ) {
    			continue;
    		} else {
    			$has_row = true;
    		}
    		?>
    		<tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
    			<th><?php echo wc_attribute_label( $attribute['name'] ); ?></th>
    			<td><?php
    				if ( $attribute['is_taxonomy'] ) {
    
    					$values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );
    					echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
    
    				} else {
    
    					// Convert pipes to commas and display values
    					$values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
    					echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
    
    				}
    			?></td>
    		</tr>
    	<?php endforeach; ?>

    Адаптируйте под свои нужды. Я думаю, должно работать)

    P.S. Не забываем поглядывать в документацию. Вот полный список того, что можно сделать с $product https://docs.woocommerce.com/wc-apidocs/class-WC_P...
    Ответ написан
    Комментировать
  • Как сделать что бы при наведении на картинку появлялось описание?

    yespeace
    @yespeace
    Uncle Bob’s Nephew
    Ответ написан
    Комментировать
  • Как сделать что бы при наведении на картинку появлялось описание?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    HTML:

    <div class="container" >
        <img src="./images/image1.jpg" />
        <div class="description" >Your description 1</div>
    </div>
    <div class="container" >
        <img src="./images/image2.jpg" />
        <div class="description" >Your description 1</div>
    </div>
    <div class="container" >
        <img src="./images/image3.jpg" />
        <div class="description" >Your description 1</div>
    </div>


    CSS:

    .container > .description { display:none; }
    .container:hover > .description { display: block; }
    Ответ написан
    Комментировать
  • В каком файле лежит шаблон списка записей на WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Дмитрий Маринин все правильно написал, от себя добавлю - установите какой-то плагин для отладки, который показывает, какой шаблон используется, например
    https://wordpress.org/plugins/display-template-name/
    https://wordpress.org/plugins/what-template/
    и зайдите на ту свою страницу, которую вы назначили "страницей с записями". По идее должен использоваться index.php, убедитесь в этом. Его, собственно, и нужно будет редактировать.
    Ответ написан
    2 комментария
  • В каком файле лежит шаблон списка записей на WordPress?

    Creamov
    @Creamov
    Senior Fullstack Software Engineer
    Вывод записей обычно есть сразу в нескольких местах:
    index.php
    archive.php
    category.php
    tag.php
    taxonomy.php
    search.php

    И их производные с {id} или {slug}, например:
    archive-news.php // slug
    category-123.php // id
    ... и т.д.

    Иерархию файлов темы в WP можно посмотреть тут: Wordpress Template Hierarchy. В разных нестандартных темах список записей может быть где угодно.
    Ответ написан
    Комментировать
  • WordPress чистая тема где скачать?

    Комментировать
  • Как назначить пользователя на редактирование только одной страницы в WordPress?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    Комментировать