Hi David,
Hope you are well!
I added a function in PTO 2.0, derived from https://www.pricetapestry.org/node/514 to make it possible in shortcode pto_search to search within a category or merchant. It works great, but the unset function doesn't work, the category or merchant parameter remains set and active. Not nice on a blogpage with all different kinds of shortcodes on 1 page.
[pto search="searchterm" incategory="something" results="12" sort="random"]
I added in pto.php
<?php
if (isset($atts["inmerchant"]))
{
global $pto_searchIncludeMerchant;
$pto_searchIncludeMerchant = $atts["inmerchant"];
}
if (isset($atts["incategory"]))
{
global $pto_searchIncludeCategory;
$pto_searchIncludeCategory = $atts["incategory"];
}
?>
and in pto_search.php:
<?php
global $pto_searchIncludeMerchant;
if (isset($pto_searchIncludeMerchant))
{
$ins = array();
$merchants = explode(",",$pto_searchIncludeMerchant);
foreach($merchants as $merchant)
{
$ins[] = "'".$wpdb->escape($merchant)."'";
}
$pto_searchWhere .= " AND merchant IN (".implode(",",$ins).") ";
unset($pto_searchIncludeMerchant);
}
global $pto_searchIncludeCategory;
if (isset($pto_searchIncludeCategory))
{
$ins = array();
$categories = explode(",",$pto_searchIncludeCategory);
foreach($categories as $category)
{
$ins[] = "'".$wpdb->escape($category)."'";
}
$pto_searchWhere .= " AND category IN (".implode(",",$ins).") ";
unset($pto_searchIncludeCategory);
}
?>
Hope you can help!
Kind regards, Marlies
Hi David,
Thank you for a weekend answer! Sorry to say it's not working, I also added the other 2 there too - just to be sure -
<?php
unset($pto_searchWhere);
unset($pto_searchIncludeCategory);
unset($pto_searchIncludeMerchant);
?>
but the $pto_searchWhere value is not released.
There are extra functionalities added to pto_search.php, but as far as I can see they shouldn't have an affect on $pto_searchWhere.
Do you have an idea?
Thank you again,
Marlies
Hello Marlies,
It should just be a case of unsetting $pto_searchWhere at the end of the pto_search() function so if you edit pto_search.php, locate the pto_search() function and at the end (around line 411 in the distribution) will be;
return $html;
....REPLACE with:
unset($pto_searchWhere);
return $html;
Cheers,
David.
--
PriceTapestry.com