从我的高级搜索结果中获取WC产品时遇到问题

时间:2019-05-01 16:52:30

标签: php wordpress search woocommerce

你好,祝大家好。 我在尝试使用搜索结果从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();
    }
}

advanced-search-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:

试图找到一个插件来实现类似的目的,但是找不到适合我的情况的插件。我还浏览了许多此处发布的问题,但似乎也找不到关于该问题的更多帮助。

0 个答案:

没有答案