vinstones Posted October 15, 2008 Posted October 15, 2008 I've upgraded to MS2.2 RC2a recently and.. wanted to show special price in new_products.php (Just like how the special box is showing) Salvage some old code from previous new_products.php to show the special price in red with normal price strike out in frontpage whats new. However the code ended up showing the special price (as normal price ) strike out + special price in red: eg: If I have a product at $5.00 and the special price is $4.50 it shows the following instead: $4.50 $4.50 Hope that someone can point out the error so that it can correctly reflect both the normal price + special price like this: $5.00 $4.50 the edited code for includes/modules/new_products.php is as follow: Thanks in advance <?php /* $Id: new_products.php 1806 2008-01-11 22:48:15Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2008 osCommerce Released under the GNU General Public License */ ?> <!-- new_products //--> <?php $info_box_contents = array(); $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B'))); new contentBoxHeading($info_box_contents); if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) { $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } else { $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, pd.products_name, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "' order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } $row = 0; $col = 0; $info_box_contents = array(); while ($new_products = tep_db_fetch_array($new_products_query)) { $new_products['products_name'] = tep_get_products_name($new_products['products_id']); // modified to display special price on Index Page $new_products['specials_new_products_price'] = tep_get_products_special_price($new_products['products_id']); if (tep_not_null($new_products['specials_new_products_price'])) { $whats_new_price = '<s>' . $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])) . '</s><br>'; $whats_new_price .= '<span class="productSpecialPrice">' . $currencies->display_price($new_products['specials_new_products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])) . '</span>'; } else { $whats_new_price = $currencies->display_price($new_products['products_price'], tep_get_tax_rate($new_products['products_tax_class_id'])); } $info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="33%" valign="top"', 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products['products_image'], $new_products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products['products_id']) . '">' . $new_products['products_name'] . '</a><br>' . $whats_new_price); // modified to display special price on Index Page $col ++; if ($col > 2) { $col = 0; $row ++; } } new contentBox($info_box_contents); ?> <!-- new_products_eof //-->
darkpriest Posted November 1, 2008 Posted November 1, 2008 I've upgraded to MS2.2 RC2a recently and.. wanted to show special price in new_products.php (Just like how the special box is showing) Salvage some old code from previous new_products.php to show the special price in red with normal price strike out in frontpage whats new. However the code ended up showing the special price (as normal price ) strike out + special price in red: eg: If I have a product at $5.00 and the special price is $4.50 it shows the following instead: $4.50 $4.50 Hope that someone can point out the error so that it can correctly reflect both the normal price + special price like this: $5.00 $4.50 the edited code for includes/modules/new_products.php is as follow: Hello Vinstones, I have the same problem. I'm searching for days (and nights) Did you find the solution yet? darkpriest
Foffo Posted December 9, 2008 Posted December 9, 2008 I've upgraded to MS2.2 RC2a recently and.. wanted to show special price in new_products.php (Just like how the special box is showing) Salvage some old code from previous new_products.php to show the special price in red with normal price strike out in frontpage whats new. However the code ended up showing the special price (as normal price ) strike out + special price in red: eg: If I have a product at $5.00 and the special price is $4.50 it shows the following instead: $4.50 $4.50 Hope that someone can point out the error so that it can correctly reflect both the normal price + special price like this: $5.00 $4.50 the edited code for includes/modules/new_products.php is as follow: Thanks in advance I would love to find a solution to this problem as well. Please tell me that there's someone that's solved this problem by now... I'm going insane over this problem :wacko:
dxer Posted December 9, 2008 Posted December 9, 2008 I found this to be problem of specific template. I fixed that yesterday by looking into code of the files. I found it here: if ($new_price = tep_get_products_special_price($products_new['products_id'])) { $products_price = '<span class="price_txt_strice">' . $currencies->display_price($products_new['products_price'], tep_get_tax_rate($products_new['products_tax_class_id'])) . '</span> <span class="price_txt">' . $currencies->display_price($new_price, tep_get_tax_rate($products_new['products_tax_class_id'])) . '</span>'; } else { $products_price = '<span class="price_txt">'.$currencies->display_price($products_new['products_price'], tep_get_tax_rate($products_new['products_tax_class_id']).'</span>'); }
Foffo Posted December 9, 2008 Posted December 9, 2008 I found this to be problem of specific template. I fixed that yesterday by looking into code of the files. I found it here: if ($new_price = tep_get_products_special_price($products_new['products_id'])) { $products_price = '<span class="price_txt_strice">' . $currencies->display_price($products_new['products_price'], tep_get_tax_rate($products_new['products_tax_class_id'])) . '</span> <span class="price_txt">' . $currencies->display_price($new_price, tep_get_tax_rate($products_new['products_tax_class_id'])) . '</span>'; } else { $products_price = '<span class="price_txt">'.$currencies->display_price($products_new['products_price'], tep_get_tax_rate($products_new['products_tax_class_id']).'</span>'); } Could you tell me in which file & template? An example of the code before/after would be wonderful as well so I can understand & learn from what I change in the code. :rolleyes: Thanks.
Foffo Posted December 9, 2008 Posted December 9, 2008 Ah, I found where you meant, but I've already tried that solution... without success. I still get the discount-price set as both the discount-price & the original price :(
dxer Posted December 9, 2008 Posted December 9, 2008 Ah, I found where you meant, but I've already tried that solution... without success. I still get the discount-price set as both the discount-price & the original price :( Send me specific file where problem is, and describe what exact problem do you have. I will take a look at it. Send me stylesheet.css file too. I hope you can reach my e-mail from PM ?
tjzones Posted December 10, 2008 Posted December 10, 2008 It took me a couple of hours to figure this out. My code is modified for SPPC. Changes I made have "// Changes to show original price vs special" beside it Hope it helps <?php /* $Id: new_products.php,v 1.34 2003/06/09 22:49:58 hpdl Exp $ adapted for Separate Pricing Per Customer v4.0 2005/01/26 osCommerce, Open Source E-Commerce Solutions [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url] Copyright © 2003 osCommerce Released under the GNU General Public License */ ?> <!-- new_products //--> <?php $info_box_contents = array(); $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B'))); new contentBoxHeading($info_box_contents); if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) { // BOF Separate Pricing Per Customer $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, p.products_price, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and pd.language_id = '" . (int)$languages_id . "' and p.products_id = pd.products_id order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } else { $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, p.products_price, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c using(categories_id) where c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' and pd.language_id = '" . (int)$languages_id . "' and p.products_id = pd.products_id order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } // global variable (session) $sppc_customer_group_id -> local variable customer_group_id if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') { $customer_group_id = $_SESSION['sppc_customer_group_id']; } else { $customer_group_id = '0'; } if (($no_of_new_products = tep_db_num_rows($new_products_query)) > 0) { while ($_new_products = tep_db_fetch_array($new_products_query)) { $new_products[] = $_new_products; $list_of_prdct_ids[] = $_new_products['products_id']; } $select_list_of_prdct_ids = "products_id = '".$list_of_prdct_ids[0]."' "; if ($no_of_new_products > 1) { for ($n = 1 ; $n < count($list_of_prdct_ids) ; $n++) { $select_list_of_prdct_ids .= "or products_id = '".$list_of_prdct_ids[$n]."' "; } } // get all customers_group_prices for products with the particular customer_group_id // however not necessary for customer_group_id = 0 if ($customer_group_id != '0') { $pg_query = tep_db_query("select pg.products_id, customers_group_price as price from " . TABLE_PRODUCTS_GROUPS . " pg where (".$select_list_of_prdct_ids.") and pg.customers_group_id = '".$customer_group_id."'"); while ($pg_array = tep_db_fetch_array($pg_query)) { $new_prices[] = array ('products_id' => $pg_array['products_id'], 'products_price' => $pg_array['price'], 'specials_new_products_price' => ''); } for ($x = 0; $x < $no_of_new_products; $x++) { // replace products prices with those from customers_group table if(!empty($new_prices)) { for ($i = 0; $i < count($new_prices); $i++) { if( $new_products[$x]['products_id'] == $new_prices[$i]['products_id'] ) { $new_products[$x]['products_price'] = $new_prices[$i]['products_price']; } } } // end if(!empty($new_prices) } // end for ($x = 0; $x < $no_of_products_new; $x++) } // end if ($customer_group_id != '0') // an extra query is needed for all the specials $specials_query = tep_db_query("select products_id, specials_new_products_price from " . TABLE_SPECIALS . " where (".$select_list_of_prdct_ids.") and status = '1' and customers_group_id = '" .$customer_group_id. "' "); while ($specials_array = tep_db_fetch_array($specials_query)) { $new_s_prices[] = array ('products_id' => $specials_array['products_id'], 'specials_new_products_price' => $specials_array['specials_new_products_price']); } // replace products_price with the correct specials_new_products_price if(!empty($new_s_prices)) { for ($x = 0; $x < $no_of_new_products; $x++) { for ($i = 0; $i < count($new_s_prices); $i++) { if( $new_products[$x]['products_id'] == $new_s_prices[$i]['products_id'] ) { $new_products[$x]['specials_new_products_price'] = $new_s_prices[$i]['specials_new_products_price']; // Changes to show original price vs special } } } } // // end if(!empty($new_s_prices) $row = 0; $col = 0; $info_box_contents = array(); // while ($new_products = tep_db_fetch_array($new_products_query)) { for ($x = 0; $x < $no_of_new_products; $x++) { $info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="33%" valign="top"', 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products[$x]['products_image'], $new_products[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products[$x]['products_id']) . '">' . $new_products[$x]['products_name'] . '</a><br><s>' . $currencies->display_price($new_products[$x]['products_price'], tep_get_tax_rate($new_products[$x]['products_tax_class_id'])) . '</s><br><span class="productSpecialPrice">' . $currencies->display_price($new_products[$x]['specials_new_products_price'], tep_get_tax_rate($new_products[$x]['products_tax_class_id'])) . '</span>'); // Changes to show original price vs special $col ++; if ($col > 2) { $col = 0; $row ++; } } // end for ($x = 0; $x < $no_of_new_products; $x++) } // end if (($no_of_new_products = tep_db_num_rows($new_products_query)) > 0) // EOF Separate Pricing Per Customer new contentBox($info_box_contents); ?> <!-- new_products_eof //-->
tjzones Posted December 11, 2008 Posted December 11, 2008 this is cleaner....and works better. Ignore previous post <?php /* $Id: new_products.php,v 1.34 2003/06/09 22:49:58 hpdl Exp $ adapted for Separate Pricing Per Customer v4.0 2005/01/26 osCommerce, Open Source E-Commerce Solutions [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url] Copyright © 2003 osCommerce Released under the GNU General Public License */ ?> <!-- new_products //--> <?php $info_box_contents = array(); $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_NEW_PRODUCTS, strftime('%B'))); new contentBoxHeading($info_box_contents); if ( (!isset($new_products_category_id)) || ($new_products_category_id == '0') ) { // BOF Separate Pricing Per Customer $new_products_query = tep_db_query("select p.products_id, p.products_image, p.products_tax_class_id, p.products_price, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and pd.language_id = '" . (int)$languages_id . "' and p.products_id = pd.products_id order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } else { $new_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, p.products_price, pd.products_name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c on pd.products_id = p2c.products_id left join " . TABLE_CATEGORIES . " c using(categories_id) where c.parent_id = '" . (int)$new_products_category_id . "' and p.products_status = '1' and pd.language_id = '" . (int)$languages_id . "' and p.products_id = pd.products_id order by p.products_date_added desc limit " . MAX_DISPLAY_NEW_PRODUCTS); } // global variable (session) $sppc_customer_group_id -> local variable customer_group_id if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') { $customer_group_id = $_SESSION['sppc_customer_group_id']; } else { $customer_group_id = '0'; } if (($no_of_new_products = tep_db_num_rows($new_products_query)) > 0) { while ($_new_products = tep_db_fetch_array($new_products_query)) { $new_products[] = $_new_products; $list_of_prdct_ids[] = $_new_products['products_id']; } $select_list_of_prdct_ids = "products_id = '".$list_of_prdct_ids[0]."' "; if ($no_of_new_products > 1) { for ($n = 1 ; $n < count($list_of_prdct_ids) ; $n++) { $select_list_of_prdct_ids .= "or products_id = '".$list_of_prdct_ids[$n]."' "; } } // get all customers_group_prices for products with the particular customer_group_id // however not necessary for customer_group_id = 0 if ($customer_group_id != '0') { $pg_query = tep_db_query("select pg.products_id, customers_group_price as price from " . TABLE_PRODUCTS_GROUPS . " pg where (".$select_list_of_prdct_ids.") and pg.customers_group_id = '".$customer_group_id."'"); while ($pg_array = tep_db_fetch_array($pg_query)) { $new_prices[] = array ('products_id' => $pg_array['products_id'], 'products_price' => $pg_array['price'], 'specials_new_products_price' => ''); } for ($x = 0; $x < $no_of_new_products; $x++) { // replace products prices with those from customers_group table if(!empty($new_prices)) { for ($i = 0; $i < count($new_prices); $i++) { if( $new_products[$x]['products_id'] == $new_prices[$i]['products_id'] ) { $new_products[$x]['products_price'] = $new_prices[$i]['products_price']; } } } // end if(!empty($new_prices) } // end for ($x = 0; $x < $no_of_products_new; $x++) } // end if ($customer_group_id != '0') // an extra query is needed for all the specials $specials_query = tep_db_query("select products_id, specials_new_products_price from " . TABLE_SPECIALS . " where (".$select_list_of_prdct_ids.") and status = '1' and customers_group_id = '" .$customer_group_id. "' "); while ($specials_array = tep_db_fetch_array($specials_query)) { $new_s_prices[] = array ('products_id' => $specials_array['products_id'], 'specials_new_products_price' => $specials_array['specials_new_products_price']); } // replace products_price with the correct specials_new_products_price if(!empty($new_s_prices)) { for ($x = 0; $x < $no_of_new_products; $x++) { for ($i = 0; $i < count($new_s_prices); $i++) { if( $new_products[$x]['products_id'] == $new_s_prices[$i]['products_id'] ) { $new_products[$x]['specials_new_products_price'] = $new_s_prices[$i]['specials_new_products_price']; // Changes to show original price vs special } } } } // // end if(!empty($new_s_prices) $row = 0; $col = 0; $info_box_contents = array(); // while ($new_products = tep_db_fetch_array($new_products_query)) { for ($x = 0; $x < $no_of_new_products; $x++) { if (tep_not_null($new_products[$x]['specials_new_products_price'])) { $products_price = '<s>' . $currencies->display_price($new_products[$x]['products_price'], tep_get_tax_rate($new_products[$x]['products_tax_class_id'])) . '<br></s> <span class="productSpecialPrice">' . $currencies->display_price($new_products[$x]['specials_new_products_price'], tep_get_tax_rate($new_products[$x]['products_tax_class_id'])) . '</span>'; } else { $products_price = $currencies->display_price($new_products[$x]['products_price'], tep_get_tax_rate($new_products[$x]['products_tax_class_id'])); } $info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="33%" valign="top"', 'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $new_products[$x]['products_image'], $new_products[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $new_products[$x]['products_id']) . '">' . $new_products[$x]['products_name'] . '</a><br>' . $products_price .'<br />'); $col ++; if ($col > 2) { $col = 0; $row ++; } } // end for ($x = 0; $x < $no_of_new_products; $x++) } // end if (($no_of_new_products = tep_db_num_rows($new_products_query)) > 0) // EOF Separate Pricing Per Customer new contentBox($info_box_contents); ?> <!-- new_products_eof //-->
Recommended Posts
Archived
This topic is now archived and is closed to further replies.