Selection of the selected item using theloop
-
Good afternoon, tell me how you can choose a selected product using WP_Query with your own markup and how to redefine templates
-
Hi @matros97
Sorry, the question isn’t clear. Could you post more details?
P.S. можно на русском, если так удобнее.
Добрый день, подскажите, как можно выбрать избраный товар(тот что я добавил в список желений) с помощью WP_Query с собственной разметкой и как переопределить шаблоны
@templateinvaders Подскажите пожалуйста как можно выбрать избраный товар(тот что я добавил в список желений) с помощью WP_Query с собственной разметкой и как переопределить шаблоны
Получить список продуктов для добавленных в текущий лист желаний можно следующим методом:
$products = tinvwl_get_wishlist_products(0, array('external' => false));
Переопределить шаблоны нашего плагина можно по аналогии с шаблонами WooCommerce. Просто скопировать нужный шаблон с директории плагина в woocommerce директорию в текущей теме.
@templateinvaders
Так как сделать выборку через WP_QueryИспользовать product_id с метода выше как аргумент ID в WP_Query.
@templateinvaders можете пример написать ?
код только для идеи:
$products = tinvwl_get_wishlist_products(0, array('external' => false)); $ids = []; foreach ($products as $product) { $ids[] = $product['product_id']; } $query = new WP_Query(array('post_type' => 'product', 'post__in' => $ids));
<?php if (!defined('ABSPATH')) { exit; // Exit if accessed directly. } wp_enqueue_script('tinvwl'); ?> <div class="tinv-wishlist woocommerce tinv-wishlist-clear" id="main"> <div class="w100"><button id='filter'>My wishlist, Favorites</button></div> <?php do_action('tinvwl_before_wishlist', $wishlist); ?> <?php if (function_exists('wc_print_notices') && isset(WC()->session)) { wc_print_notices(); } ?> <?php $wl_paged = absint(get_query_var('wl_paged')); $form_url = tinv_url_wishlist($wishlist['share_key'], $wl_paged, true); $products = tinvwl_get_wishlist_products(0, array('external' => false)); $ids = []; foreach ($products as $product) { $ids[] = $product['product_id']; } $query = new WP_Query(array('post_type' => 'product', 'post__in' => $ids, 'search_filter_id' => 208)); ?> <?php if ( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <form action="<?php echo esc_url($form_url); ?>" method="post" autocomplete="off"> <div class="products-cart-wrapper"> <div class="products-cart"> <div class="img"> <div class="type"> <span class="new">New</span> <span class="best-seller">Best Seller</span> <span class="yeast-free">Yeast-free</span> <span class="glutenfree">Gluten free</span> <span class="koсher">Koсher</span> <span class="sugar-free">Sugar free</span> </div> <span class="close-btn"> <button type="submit" name="tinvwl-remove" value="<?php the_ID(); ?>" title="<?php _e('Remove', 'ti-woocommerce-wishlist') ?>"><img src="<?php bloginfo('template_url') ?>/assets/images/close-btn.png" alt=""> </button> </span> <a href="#"><img src="images/produkts/produkts1.jpg" alt=""></a> </div> <a href="#"> <div class="title">AmbeRye Family Dark Rye Bread</div> <div class="p">All natural robust, full-flavored rye bread crafted with Lithuanian flair.</div> </a> <div class="products-cart-body"> <ul> <li>Product size:<span>1100 g / 38.8 oz.</span></li> <li>Product of:<span>Lithuania</span></li> <li>Product #:<span>4015</span></li> </ul> </div> <div class="products-cart-footer"> <div class="price"> <del> <span class="woocommerce-Price-amount amount"> <bdi><span class="woocommerce-Price-currencySymbol">$</span>7.99</bdi> </span> </del> <ins> <span class="woocommerce-Price-amount amount"> <bdi><span class="woocommerce-Price-currencySymbol">$</span>7.99</bdi> </span> </ins> </div> <a href="#" class="btn">Learn more</a> </div> </div> </div> </form> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_query(); ?> </div>
Не работает почему то удаление
- This reply was modified 3 years, 7 months ago by matros97.
@templateinvaders смотрите у меня задача сделать избраный товар с фильтром и что бы я мог удалять, то есть надо разметка своя
@matros97 Не удаляет потому что ID продукта в списке желаний не равно ID текущего поста.
@templateinvaders а как его можно получить в моем случаи ?
они доступны в массиве который возращает метод tinvwl_get_wishlist_products
т.е. примерно можно получить так:
$key = array_search(the_ID(), array_column($products, 'product_id')); $wl_product_id = $products[$key]['ID'];
P.S. пожайлуста, не используйте наши примеры в рабочем варианте, т.к. там нужны как минимум проверки все переменных.
@templateinvaders что то не работает
<?php while ( $query->have_posts() ) : $query->the_post(); ?> <?php global $product; $key = array_search(get_the_ID(), array_column($products, 'product_id')); $wl_product_id = $products[$key]['ID']; ?> <form action="<?php echo esc_url($form_url); ?>" method="post" autocomplete="off"> <div class="products-cart-wrapper"> <div class="products-cart"> <div class="img"> <?php $type_of_goods_checked_options = get_field( 'type_of_goods' ); ?> <?php if ( $type_of_goods_checked_options ): ?> <div class="type"> <?php foreach ( $type_of_goods_checked_options as $type_of_goods_checked_option ): ?> <span class="<?php echo esc_html( $type_of_goods_checked_option['value'] ); ?>"><?php echo esc_html( $type_of_goods_checked_option['label'] ); ?></span> <?php endforeach; ?> </div> <?php endif; ?> <span class="close-btn"> <button type="submit" name="tinvwl-remove" value="<?php echo $wl_product_id; ?>" title="<?php _e('Remove', 'ti-woocommerce-wishlist') ?>"><img src="<?php bloginfo('template_url') ?>/assets/images/close-btn.png" alt=""> </button> </span> <?php do_action( 'woocommerce_before_shop_loop_item_title' ); ?> </div> <?php do_action( 'woocommerce_shop_loop_item_title' ); //Заголовок ?> <div class="products-cart-body"> <?php if(get_field('product_size')): ?> <li>Product size:<span><?php the_field( 'product_size' ); ?></span></li> <?php endif; ?> <?php if(get_field('product_of')): ?> <li>Product of:<span><?php the_field( 'product_of' ); ?></span></li> <?php endif; ?> <?php if($product->sku): ?> <li>Product #:<span><?php echo $product->sku; ?></span></li> <?php endif; ?> </div> <div class="products-cart-footer"> <?php do_action( 'woocommerce_after_shop_loop_item_title' ); //цена ?> <a href="<?php the_permalink(); ?>" class="btn">Learn more</a> </div> </div> </div> </form>
Ну мы не можем за Вас реализовать индвидуальные решения. Наши примеры кода это всего лишь идеи как реализовать конкретные вопросы. А далее уже разработчик должен реализовать эти идеи под конкретные задачи. К сожалению мы не можем ответить почему не работает ваш код.
- The topic ‘Selection of the selected item using theloop’ is closed to new replies.