lunedì 22 febbraio 2010

Word Press e Wp e-Commerce: Ricercare i prodotti senza l'espansione Gold Cart

Ciao a tutti,

da qualche giorno mi è venuto in mente di riprendere in mano una vecchia idea per un sito di e-commerce, come al solito ho iniziato a visionare un po' di soluzioni, ma come sempre traviato dal buon Fuliggians, mi sono rivolto verso una soluzione realizzata con WordPress.

Esiste infatti un comodissimo plug-in Wp e-Commerce che già con la versione base (ci sono dei moduli a pagamento che danno ulteriori funzionalità già pronte) consente di costruire un piccolo sito di e-commerce funzionante.

Possiamo impostare tutte le più comuni opzioni che servono alla gestione del negozio, ma una delle cose che vengono offerte nei pacchetti a pagamento e la ricerca dei prodotti inseriti. Infatti il widget di ricerca dei temi wordpress, non entra nelle tabelle di anagrafica dei prodotti.

Non mi è rimasto altro da fare che modificare il file search.php contenuto nel tema prescelto, per ovviare al problema.
Questo è il codice:
<?php $arjunaOptions = arjuna_get_options(); ?>
<?php get_header(); ?>

<div class="contentArea">
<?php
// take search terms and escape them
$s = $wpdb->escape(stripslashes($wp_query->query_vars['s']));
$sql = "SELECT `".$wpdb->prefix."wpsc_product_list`.* , `".$wpdb->prefix."wpsc_product_images`.image
FROM `".$wpdb->prefix."wpsc_product_list`
INNER JOIN wp_wpsc_product_images ON (".$wpdb->prefix."wpsc_product_images.product_id = ".$wpdb->prefix."wpsc_product_list.id AND ".$wpdb->prefix."wpsc_product_images.image_order = 0)
WHERE (`".$wpdb->prefix."wpsc_product_list`.`name` LIKE '%".$s."%' OR `".$wpdb->prefix."wpsc_product_list`.`description` LIKE '%".$s."%')";
// echo $sql;
$product_list = $wpdb->get_results($sql,ARRAY_A);
if (!$product_list) {
$output = "<p>There are no products found with your search term <i>".$s."</i>.";
}
else {
$output = "<div id='search_list_products'>\n\r";
foreach((array)$product_list as $product) {
$output .= "<div class='search_product'>\n\r";
$output .= "<a href='".wpsc_product_url($product['id'])."'>";
if($product['image'] != '') {
$output .= "<img src='".WPSC_THUMBNAIL_URL.$product['image']."' title='".$product['name']."' alt='".$product['name']."' />\n\r";
$output .= "<p>\n\r";
$output .= stripslashes($product['name'])."<br />";
$output .= "<span class='front_page_price'>\n\r";
if($product['special']==1) {
$output .= "<span class='oldprice'>".nzshpcrt_currency_display($product['price'], $product['notax'])."</span><br />\n\r";
$output .= nzshpcrt_currency_display(($product['price'] - $product['special_price']), $product['notax'],false,$product['id']);
} else {
$output .= "".nzshpcrt_currency_display($product['price'], $product['notax']);
}
$output .= "</span>\n\r";
$output .= "</p>\n\r";
}
$output .= "</a>";
$output .= "</div>\n\r";
}
$output .= "</div>\n\r";
$output .= "<br style='clear: left;'>\n\r";
} // else
echo $output; ?>
</div>


<?php get_sidebar(); ?>

<?php get_footer(); ?>




Spero di esservi stato utile anche questa volta. Se avete voglia cliccate sui banner pubblicitari.
Ciao
Wsc

2 commenti:

Six19 ha detto...

ciao, funziona benissimo ma pongo un problema. trova gli articoli solo se cerco i termini nell'ordine in cui compaiono nel nome dell'articolo in questione e su molti articoli non restituisce il link giusto ma un link generico che rimanda ad una lista di prodotti. puoi verificare dal campo ricerca che ho inserito su www.taluccimoto.it i due problemi che ho segnalato. complimenti e grazie

Wsc ha detto...

Non avevo verificato questo tipo di ricerche. Forse c'è da modificare ulteriormente la query di ricerca.
Se ho un attimo provo a verificare!