Возникли проблемы при получении товаров для туалета из результатов моего расширенного поиска - PullRequest
0 голосов
/ 01 мая 2019

Здравствуйте и желаю всем хорошего месяца. У меня возникла проблема, когда я пытаюсь получить продукты из WooCommerce, используя результаты поиска (я пытаюсь получить их через свой пользовательский "поисковик"). Дело в том, что мой поисковик работает, но выводит только белый экран и название продукта. Я хочу, чтобы продукт отображался так же, как и в обычном магазине Woo Commerce, со стилями и всем тем, как если бы я искал его по категориям или по любому другому параметру (например, там есть плагины).

Чтобы помочь, это мой код:

functions.php:

function search_tickets_shortcode() {
   ob_start();
   get_template_part('tickets', 'search');
   return ob_get_clean();   
} 
add_shortcode( 'ticket_searcher', 'search_tickets_shortcode' );

add_action('init','wpse_load_custom_search_template');
function wpse_load_custom_search_template(){
    if( isset($_REQUEST['search']) == 'tickets' ) {
        require('advanced-search-template.php');
        die();
    }
}

Продвинутая поисково-template.php:

<ul class="products">
<?php 

$params = array('posts_per_page' => 5,
                'post_type' => 'product'); // (1)
$wc_query = new WP_Query($params); 
// Get data from URL into variables
$_strprt = $_GET['startingport'] != '' ? $_GET['startingport'] : '';
$_endprt = $_GET['endingport'] != '' ? $_GET['endingport'] : '';


// Start the Query
$v_args = array(
        'post_type'     =>  'product', // your CPT
        //'s'             =>  $_strprt, // looks into everything with the keyword from your 'name field'
        'meta_query'    =>  array(
                                array(
                                    'key'     => '_sku', // assumed your meta_key is 'car_model'
                                    'value'   => $_strprt,
                                    'compare' => 'LIKE', // finds models that matches 'model' from the select field
                                ),
                            )
    );
$vehicleSearchQuery = new WP_Query( $v_args );

// Open this line to Debug what's query WP has just run
// var_dump($vehicleSearchQuery->request);

// Show the results
if( $vehicleSearchQuery->have_posts() ) :
    while( $vehicleSearchQuery->have_posts() ) : $vehicleSearchQuery->the_post();
        the_title(); // Assumed your cars' names are stored as a CPT post title
    endwhile;
else :
    _e( 'Sorry, nothing matched your search criteria', 'textdomain' );
endif;
wp_reset_postdata();
?>
</ul>

И форма, которую я использую для поисковика из tickets-search.php:

<form method="get" id="tickets-search" role="search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <div class ="row aligned">
    <h3><?php _e( 'Tickets Search', 'textdomain' ); ?></h3>

    <!-- PASSING THIS TO TRIGGER THE ADVANCED SEARCH RESULT PAGE FROM functions.php -->
    <input type="hidden" name="search" value="tickets">


    <label for="startingport" class="" required><?php _e( 'From: ', 'textdomain' ); ?></label><br>
    <select name="startingport" id="startingport" required>
        <option value=""><?php _e( 'From:', 'textdomain' ); ?></option>
        <option value="Ancona"><?php _e( 'Ancona', 'textdomain' ); ?></option>
        <option value="Igoumenitsa"><?php _e( 'Igoumenitsa', 'textdomain' ); ?></option>
    </select><br><br>

    <label for="endingport" class=""><?php _e( 'To: ', 'textdomain' ); ?></label><br>
    <select name="endingport" id="endingport" required>
        <option value=""><?php _e( 'To:', 'textdomain' ); ?></option>
        <option value="IgoumenitsaR"><?php _e( 'AnconaR', 'textdomain' ); ?></option>
        <option value="AnconaR"><?php _e( 'IgoumenitsaR', 'textdomain' ); ?></option>
    </select>
    <br><br>

    <label for="datepickah">Choose date</label><br>
    <input type="text" name="date" id="datepickah" required />
    <br><br>
    <div class="subm">
    <input type="submit" id="searchsubmit" value="tickets" />
    </div>
</div>
</form>

Как мне добиться правильного внешнего интерфейса "Страница продуктов" вместо того, чтобы просто перевести названия продуктов на белый фон? Я новичок в PHP, поэтому любая помощь будет принята с благодарностью. Заранее спасибо!

PS:

Пытался найти плагин для достижения чего-то подобного, но не нашел ни одного подходящего для моего случая. Я также просмотрел множество вопросов, опубликованных здесь, но, похоже, не могу найти и дополнительную помощь по этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...