User Tools

Site Tools


tutorials:zencartmods:back_in_stock_notifications.html

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tutorials:zencartmods:back_in_stock_notifications.html [2011/07/27 22:28]
ladyada [back in stock notifications]
tutorials:zencartmods:back_in_stock_notifications.html [2016/01/28 18:05]
Line 1: Line 1:
-{{:​tutorials:​zencartmods:​notify.png?​|}} 
- 
- 
- 
-We use the [[http://​www.zen-cart.com/​index.php?​main_page=product_contrib_info&​products_id=1108|Back in stock notifications]] plugin for zencart. 
- 
-The plugin itself works out of the  box, and the installation instructions are easy enough to follow, but there are a few modifications to be made that we think makes it better. 
- 
-==== Simple Captcha ==== 
- 
-We used [[http://​www.phpcaptcha.org/​|Securimage]],​ which also works quite well as advertised. ​ 
- 
-Install Securimage somewhere on your webserver, and make these modifications to the Back in stock notifications plugin. 
- 
-In **includes/​modules/​pages/​back_in_stock_notification_subscribe/​header.php** ​ 
-Line 56 Add 
-<code php> 
-include("​PATH_TO_YOUR_SECURIMAGE_PHP"​);​ 
-$securimg = new Securimage();​ 
- 
-$valid = $securimg->​check($_POST['​captcha_text'​]);​ 
-</​code>​ 
-(Obviously, you ned to replace PATH_TO_YOUR_SECURIMAGE_PHP with your own path) 
- 
-Then find Line 74 
-<code php> 
-else if (strtolower($_POST['​email'​]) != strtolower($_POST['​cofnospam'​])) { 
-                $form_errors['​cofnospam'​] = 
- BACK_IN_STOCK_NOTIFICATION_FORM_ERROR_EMAIL_CONFIRMATION_DOESNT_MATCH;​ 
-        } 
-</​code>​ 
-and replace with  
-<code php> 
-else if (strtolower($_POST['​email'​]) != strtolower($_POST['​cofnospam'​])) { 
-                $form_errors['​cofnospam'​] = 
- BACK_IN_STOCK_NOTIFICATION_FORM_ERROR_EMAIL_CONFIRMATION_DOESNT_MATCH;​ 
-        } 
-else if (!isset($_POST['​captcha_text'​]) || $valid == false) 
-        { 
-                $form_errors['​captcha'​] = BACK_IN_STOCK_NOTIFICATION_FORM_ERROR_CAPTCHA;​ 
-        }  
-</​code>​ 
- 
-in **includes/​languages/​english/​backin_stock_notification_subscribe.php** add 
-<code php> 
-define('​BACK_IN_STOCK_NOTIFICATION_FORM_ERROR_CAPTCHA',​ '​Please verify the text on the right!'​);​ 
-</​code>​ 
- 
-in **includes/​templates/​YOUR_TEMPLATE/​templates/​inc.html.back_in_stock_notifications.html** Add wherever you want the captcha to show up (we choose L36&​L113 right afer the submit button) 
-<code html> 
-<img style="​float:​ right;"​ src="​securimage_show.php"​ /> 
-                <ceon:if isset="​captcha_error"><​p class="​alert"><​ceon:​variable name="​captcha_error">​Please verify the text on the right!</​ceon:​variable></​p></​ceon:​if>​ 
-                <label class="​inputLabel"​ for="​captcha_label"><​ceon:​variable name="​captcha_label">​Verify text</​ceon:​variable>:</​label>​ 
-                <input type="​text"​ size="​35"​ maxlength="​96"​ name="​captcha_text"​ /> 
- 
-</​code>​ 
- 
-==== Individual produts ==== 
- 
-By default, the **sendBackInStockNotifications()** functions sends notifications to everyone who has subscribed to any item that is back in stock. 
- 
-In order to make it so you can send notifications to people who are subscribed only to certain item,  
- 
-in **admin/​includes/​functions/​back_in_stock_notifications_functions.php** line 32 replace 
-<code php> 
-function sendBackInStockNotifications($test_mode = false) 
-</​code>​ 
-wiwth 
-<code php> 
-function sendBackInStockNotifications($test_mode = false, $products_id = 0) 
-</​code>​ 
- 
-and replace ​ 
-<code php> 
-        $email_addresses_query_raw = " ​                                                                                                                                                                                                                                       ​ 
-                SELECT ​                                                                                                                                                                                                                                                       ​ 
-                        bisns.email_address,​ bisns.name, c.customers_email_address,​ c.customers_firstname, ​                                                                                                                                                                   ​ 
-                        c.customers_lastname ​                                                                                                                                                                                                                                 ​ 
-                FROM                                                                                                                                                                                                                                                          ​ 
-                        " . TABLE_BACK_IN_STOCK_NOTIFICATION_SUBSCRIPTIONS . " bisns                                                                                                                                                                                          ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_PRODUCTS . " p                                                                                                                                                                                                                              ​ 
-                ON                                                                                                                                                                                                                                                            ​ 
-                        p.products_id = bisns.product_id ​                                                                                                                                                                                                                     ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_CUSTOMERS . " c                                                                                                                                                                                                                              
-                ON                                                                                                                                                                                                                                                            ​ 
-                        c.customers_id = bisns.customer_id ​                                                                                                                                                                                                                   ​ 
-                WHERE                                                                                                                                                                                                                                                          
-                        p.products_quantity > 0                                                                                                                                                                                                                                
-                GROUP BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address ​                                                                                                                                                                                                               ​ 
-                ORDER BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address";​ 
-</​code>​ 
-with 
-<code php> 
-if( $products_id == 0) 
-          { 
-        $email_addresses_query_raw = " ​                                                                                                                                                                                                                                       ​ 
-                SELECT ​                                                                                                                                                                                                                                                       ​ 
-                        bisns.email_address,​ bisns.name, c.customers_email_address,​ c.customers_firstname, ​                                                                                                                                                                   ​ 
-                        c.customers_lastname ​                                                                                                                                                                                                                                 ​ 
-                FROM                                                                                                                                                                                                                                                          ​ 
-                        " . TABLE_BACK_IN_STOCK_NOTIFICATION_SUBSCRIPTIONS . " bisns                                                                                                                                                                                          ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_PRODUCTS . " p                                                                                                                                                                                                                              ​ 
-                ON                                                                                                                                                                                                                                                            ​ 
-                        p.products_id = bisns.product_id ​                                                                                                                                                                                                                     ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_CUSTOMERS . " c                                                                                                                                                                                                                              
-                ON                                                                                                                                                                                                                                                            ​ 
-                        c.customers_id = bisns.customer_id ​                                                                                                                                                                                                                   ​ 
-                WHERE                                                                                                                                                                                                                                                          
-                        p.products_quantity > 0                                                                                                                                                                                                                                
-                GROUP BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address ​                                                                                                                                                                                                               ​ 
-                ORDER BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address";​ 
-          } 
-        else 
-          { 
-        $email_addresses_query_raw = " ​                                                                                                                                                                                                                                       ​ 
-                SELECT ​                                                                                                                                                                                                                                                       ​ 
-                        bisns.email_address,​ bisns.name, c.customers_email_address,​ c.customers_firstname, ​                                                                                                                                                                   ​ 
-                        c.customers_lastname ​                                                                                                                                                                                                                                 ​ 
-                FROM                                                                                                                                                                                                                                                          ​ 
-                        " . TABLE_BACK_IN_STOCK_NOTIFICATION_SUBSCRIPTIONS . " bisns                                                                                                                                                                                          ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_PRODUCTS . " p                                                                                                                                                                                                                              ​ 
-                ON                                                                                                                                                                                                                                                            ​ 
-                        p.products_id = bisns.product_id ​                                                                                                                                                                                                                     ​ 
-                LEFT JOIN                                                                                                                                                                                                                                                      
-                        " . TABLE_CUSTOMERS . " c                                                                                                                                                                                                                              
-                ON                                                                                                                                                                                                                                                            ​ 
-                        c.customers_id = bisns.customer_id ​                                                                                                                                                                                                                   ​ 
-                WHERE                                                                                                                                                                                                                                                          
-                        p.products_quantity > 0                                                                                                                                                                                                                                
-                AND                                                                                                                                                                                                                                                            
-                        p.products_id = " . (int)$products_id . " ​                                                                                                                                                                                                             
-                GROUP BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address ​                                                                                                                                                                                                               ​ 
-                ORDER BY                                                                                                                                                                                                                                                      ​ 
-                        email_address,​ customers_email_address";​ 
- 
-          } 
- 
-</​code>​ 
- 
-You can now make an admin page that will send notifications only to people subscribed to a certain product by calling **sendBackInStockNotifications(false,​ YOUR_PID)**. 
- 
- 
  
/home/ladyada/public_html/wiki/data/pages/tutorials/zencartmods/back_in_stock_notifications.html.txt · Last modified: 2016/01/28 18:05 (external edit)