在前端搜索结果中包括WooCommerce自定义字段值

时间:2018-11-02 作者:iceiceicy

目前,搜索结果仅显示所有woocommerce默认产品字段(产品标题、类别、标签等)。

我在woocommerce产品中添加了一个新的自定义字段,并在函数中使用了此代码。php

/** Add Sub-Title option in Woocommerce */

add_action( \'woocommerce_product_options_general_product_data\', \'my_custom_field\' );

function my_custom_field() {

woocommerce_wp_text_input( 
array( 
    \'id\'          => \'_subtitle\', 
    \'label\'       => __( \'Reference\', \'woocommerce\' ), 
    \'placeholder\' => \'Reference code\',
    \'description\' => __( \'Enter the reference code\', \'woocommerce\' ) 
)
);

}

add_action( \'woocommerce_process_product_meta\', \'my_custom_field_save\' );

function my_custom_field_save( $post_id ){  

$subtitle = $_POST[\'_subtitle\'];
if( !empty( $subtitle ) )
    update_post_meta( $post_id, \'_subtitle\', esc_attr( $subtitle ) );

}
How can I include this custom field value in the search result? 我尝试过谷歌,但没有任何有效的解决方案。

1 个回复
SO网友:sandrodz

您必须修改WooCommerce搜索查询。

钩住这个动作:do_action( \'woocommerce_product_query\', $query, $instance );

  • 检测是否是搜索查询添加_subtitle meta(未经测试):

    if ( $query->is_search ) {
        $query->set(\'meta_query\', array(
            array(
                \'key\' => \'_subtitle\',
                \'value\' => $query->query_vars[\'s\'],
                \'compare\' => \'LIKE\'
            )
        ));
    };
    

  • 结束