Задать вопрос
  • Вывод методов доставки на странице Оформления заказа для незарегистрированных пользователей?

    @midas34
    Зависит конечно от темплейтов темы, можно реализовать так:
    1) Шаблоны \woocommerce\checkout\form-checkout.php и \woocommerce\checkout\review-order.php копируйте в вашу текущую тему WP
    2) Открываем review-order.php и смотрим секцию tfoot, начинается с
    <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>

    Вырезаем кусок до конца и вставляем в нужное место в шаблоне form-checkout.php
    По другому ни как! т.к. именно в review-order.php идёт проверка на включение опций Доставки в Woo, если опция включена, идёт проверка и вывод методов доставки
    Пример какой кусок вырезается, брал из стандартного шаблона Woo
    <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
    
    			<?php do_action( 'woocommerce_review_order_before_shipping' ); ?>
    
    			<?php wc_cart_totals_shipping_html(); ?>
    
    			<?php do_action( 'woocommerce_review_order_after_shipping' ); ?>
    
    		<?php endif; ?>
    
    		<?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
    			<tr class="fee">
    				<th><?php echo esc_html( $fee->name ); ?></th>
    				<td><?php wc_cart_totals_fee_html( $fee ); ?></td>
    			</tr>
    		<?php endforeach; ?>
    
    		<?php if ( wc_tax_enabled() && ! WC()->cart->display_prices_including_tax() ) : ?>
    			<?php if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?>
    				<?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited ?>
    					<tr class="tax-rate tax-rate-<?php echo esc_attr( sanitize_title( $code ) ); ?>">
    						<th><?php echo esc_html( $tax->label ); ?></th>
    						<td><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
    					</tr>
    				<?php endforeach; ?>
    			<?php else : ?>
    				<tr class="tax-total">
    					<th><?php echo esc_html( WC()->countries->tax_or_vat() ); ?></th>
    					<td><?php wc_cart_totals_taxes_total_html(); ?></td>
    				</tr>
    			<?php endif; ?>
    		<?php endif; ?>

    3) Обрамите его в теги table и tfoot по аналогии как в шаблоне review-order.php иначе посыпется вёрстка
    Метод полностью рабочий, работает на одном проекте
    Ответ написан
    3 комментария
  • Как вывести товары на каждой странице категории, подкатегории в вордпресс?

    @midas34
    Настраивается в настройках Woocommerce
    Перейдите в настройки темы Админка WP - > Внешний вид - > Настроить, Далее раздел Woocommerce, Каталог товаров настроить так:
    На странице магазина - Показывать товары
    Отображение категории - Показывать товары
    Если вы укажите в настройках Показывать категории и товары, то сначала у вас будут карточки категорий и после товары категории.
    Ответ написан
    Комментировать
  • Как сделать выпадающие разделы товаров при клике на категорию?

    @midas34 Автор вопроса
    Огромное спасибо автору PetrPo вот его решение Ссылка
    Ответ написан
    Комментировать
  • Как сделать выпадающий список при клике на блок?

    @midas34 Автор вопроса
    Огромное спасибо автору PetrPo вот его решение Ссылка
    Ответ написан
    Комментировать
  • Как вывести разделы и подразделы товаров woocomerce?

    @midas34 Автор вопроса
    Вопрос решён! Наложите стили, результат будет таков: вывод категорий (можно вывести в колонки и ряды),
    иерархия: Титл(ссылка) => Картинка(ссылка) => подкатегории(ссылка), благодаря css можно сделать вполне хороший каталог с навигацией
    <?php
    	$args = array(
            'taxonomy'   => 'product_cat',
            'hide_empty' => false,
            'parent'   => 0,
          );
          $product_categories = get_terms( $args );
    
          $count = count($product_categories);
    
          if ( $count > 0 ){
            foreach ( $product_categories as $product_category ) {
                $thumbnail_id = get_woocommerce_term_meta( $product_category->term_id, 'thumbnail_id', true );
                echo '<div class="my-vid-category">';
                echo '<ul class="my-vid">';
                echo  '<li class="my-entry-block">';
                echo  '<div class="my-entry-title">';
                echo  '<a href="' . get_term_link( $product_category ) . '" title="' . $product_category->name . '"><h2>' . $product_category->name . '</h2></a>';
                echo  '</div>';
                echo '<article class="my-type-post">';
                echo '<div class="my-entry-cover" style="width: 450px; height: 300px;">';
                echo  '<a href="' . get_term_link( $product_category ) . '"><img style="background-image: url('.  wp_get_attachment_url( $thumbnail_id ) .')!important;" /></a>';
                $args = array(
                    'taxonomy'   => 'product_cat',
                    'hide_empty' => false,
                    'parent'   => $product_category->term_id,
                  );
                  $product_categories = get_terms( $args );
            
                  $count = count($product_categories);
            
                  if ( $count > 0 ){
                    foreach ( $product_categories as $product_category ) {
                     echo  '<div class="my-parent-title">';
                     echo  '<a href="' . get_term_link( $product_category ) . '" title="' . $product_category->name . '"><h4>' . $product_category->name . '</h4></a>'; 
                     echo  '</div>';
                }}
                echo  '</div>';
                echo  '</article>';
                echo  '<hr>';
                echo  '</li>';
                echo  '</ul>';
                echo  '</div>';
            }
          }
    ?>
    Ответ написан
    Комментировать
  • Как открыть не первую вкладку в аккордеоне Elementor'a?

    @midas34
    1) Добавьте под аккардион вставку HTML
    <script> 
    jQuery(document).ready(function($) { 
    var delay = 100; setTimeout(function() { 
    $('.elementor-tab-title').removeClass('elementor-active');
     $('.elementor-tab-content').css('display', 'none'); }, delay); 
    }); 
    </script>

    2) не стоит этого делать, нагромождение будет
    Ответ написан