SearchWP Documentation

Veja o guia de instalação, navegue pela Base de Conhecimento, descubra os muitos hooks do SearchWP

Pesquisar Conteúdo de Documentos de Produtos (PDF) para Download do WooCommerce

Se você vende downloads de documentos em sua loja WooCommerce, é possível fazer com que o SearchWP indexe o conteúdo desses documentos para torná-lo pesquisável para seus clientes!

Observação: isso (como todo o processamento de documentos no SearchWP) requer que os Downloads de Produtos para Download do WooCommerce tenham sido carregados na biblioteca de Mídia local do WordPress.

Indexar Conteúdo de Documento WooCommerce

Podemos aproveitar a capacidade do SearchWP de analisar e tornar pesquisável o conteúdo de documentos legíveis armazenados na biblioteca de Mídia do WordPress. Isso pode ser combinado com a poderosa capacidade do SearchWP de indexar metadados 'extras' em seu próprio índice, sem afetar os dados armazenados na tabela de posts ou postmeta do WordPress.

O benefício dessa abordagem será indexar o conteúdo do(s) Download(s) do WooCommerce sem expor o ativo inteiro.

Para um exemplo mais generalizado de indexação de dados 'extras', dê uma olhada neste artigo da Base de Conhecimento: Adicionando dados extras a entradas indexadas

Se você quiser tornar seu conteúdo para Download do WooCommerce pesquisável, você pode usar este hook:

All hooks should be added to your custom SearchWP Customizations Plugin.

<?php
// Tell SearchWP to parse WooCommerce Downloadable Product downloads for document content.
// The content will be extracted from downloadable documents where possible and stored
// in SearchWP's index as a Custom Field with a label of "SearchWP WooCommerce Download Content"
add_filter( 'searchwp\entry\data', function( $data, \SearchWP\Entry $entry ) {
if ( 'post.product' !== $entry->get_source()->get_name() || ! class_exists( 'WC_Product' ) ) {
return $data;
}
$product = new \WC_Product( $entry->get_id() );
$downloads = $product->get_downloads();
if ( empty( $downloads ) ) {
return $data;
}
// WooCommerce only stores a hashed ID, the filename, and the URL to the file
// but we need to retrieve the Media library ID for each downloadble file.
$download_content = [];
$upload_dir = wp_upload_dir();
foreach ( $downloads as $key => $download ) {
$relative_file_location = str_replace( trailingslashit( $upload_dir['baseurl'] ), '', $download['data']['file'] );
// We can use the relative file location to retrieve the post ID we need to parse the PDFs.
$file_id = get_posts( [
'post_type' => 'attachment',
'post_status' => 'inherit',
'fields' => 'ids',
'meta_query' => [ [
'key' => '_wp_attached_file',
'value' => $relative_file_location,
], ],
] );
if ( ! empty( $file_id ) ) {
$download_content[] = \SearchWP\Document::get_content( get_post( $file_id[0] ) );
}
}
$data['meta']['swp_wc_doc_content'] = \SearchWP\Utils::tokenize( $download_content );
return $data;
}, 20, 2 );
// Add "SearchWP WooCommerce Download Content" as available option.
add_filter( 'searchwp\source\attribute\options', function( $keys, $args ) {
if ( $args['attribute'] !== 'meta' ) {
return $keys;
}
$content_key = 'swp_wc_doc_content';
if ( ! in_array(
$content_key,
array_map( function( $option ) { return $option->get_value(); }, $keys )
) ) {
$keys[] = new \SearchWP\Option( $content_key, 'SearchWP WooCommerce Download Content' );
}
return $keys;
}, 20, 2 );

Este hook se conectará ao processo de indexação do SearchWP e, quando encontrar um Produto com Downloads, verificará esses Downloads em busca de conteúdo de documento e, quando encontrado, indexará esse conteúdo junto com o próprio Produto.

Isso permitirá que você pesquise o conteúdo do Download e retorne o Produto, não o Download, o que, por sua vez, permitirá que seu cliente faça a compra.

O último passo aqui é garantir que você adicionou este Campo Personalizado 'extra' aos Produtos em seu Mecanismo SearchWP, o que pode ser feito assim:

Conteúdo de documento para download do WooCommerce SearchWP

Observação: Ao usar esta abordagem, você pode (e provavelmente deve) desabilitar a Mídia de seu Mecanismo, já que o conteúdo do Download está sendo adicionado ao Produto.

Com o conteúdo do Documento adicionado aos Produtos em seu Mecanismo, você pode clicar no botão Salvar Mecanismos, reconstruir seu índice e pronto!

Crie uma Experiência de Pesquisa WordPress Melhor Hoje

Nunca mais perca visitantes para resultados de pesquisa inúteis. O SearchWP torna a criação de sua própria pesquisa inteligente do WordPress rápida e fácil.

Get SearchWP Now
Ícone de Múltiplos Mecanismos de Busca