Results 1 to 8 of 8
  1. #1
    Join Date
    Mar 2008
    Location
    Belgium
    Posts
    115
    Plugin Contributions
    6

    cart error How to disable "payment at storepickup" when the customer has the goods delivered?

    I've moded the cod.php into cod_shop.php because I wish to prevent fake orders.
    Only cash at store or delivery after bank transfer or PayPal.

    Some customers unfortunally press "payment at storepickup" when delivered.
    So every time I have to explain the options to them.

    The question:
    How to disable "payment at storepickup" when the customer has the goods delivered?
    This is my file so let's hear it.

    PHP Code:
    <?php
    //Cash payment on store pickup ; contante betaling bij afhaling
    // +----------------------------------------------------------------------+
    // |zen-cart Open Source E-commerce                                       |
    // +----------------------------------------------------------------------+
    // | Copyright (c) 2003 The zen-cart developers                           |
    // |                                                                      |
    // | http://www.zen-cart.com/index.php                                    |
    // |                                                                      |
    // | Portions Copyright (c) 2003 osCommerce                               |
    // +----------------------------------------------------------------------+
    // | This source file is subject to version 2.0 of the GPL license,       |
    // | that is bundled with this package in the file LICENSE, and is        |
    // | available through the world-wide-web at the following url:           |
    // | http://www.zen-cart.com/license/2_0.txt.                             |
    // | If you did not receive a copy of the zen-cart license and are unable |
    // | to obtain it through the world-wide-web, please send a note to       |
    // | [email protected] so we can mail you a copy immediately.          |
    // +----------------------------------------------------------------------+
    // $Id: cod_shop.php 1.00 on 2008-03-28 by Benny for 'www.philibel.net'$
    //

      
    class cod_shop {
        var 
    $code$title$description$enabled;

    // class constructor
        
    function cod_shop() {
          global 
    $order;

          
    $this->code 'cod_shop';
          
    $this->title MODULE_PAYMENT_COD_SHOP_TEXT_TITLE;
          
    $this->description MODULE_PAYMENT_COD_SHOP_TEXT_DESCRIPTION;
          
    $this->sort_order MODULE_PAYMENT_COD_SHOP_SORT_ORDER;
          
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false);

          if ((int)
    MODULE_PAYMENT_COD_SHOP_ORDER_STATUS_ID 0) {
            
    $this->order_status MODULE_PAYMENT_COD_SHOP_ORDER_STATUS_ID;
          }

          if (
    is_object($order)) $this->update_status();
        }

    // class methods
        
    function update_status() {
          global 
    $order$db;

          if ( (
    $this->enabled == true) && ((int)MODULE_PAYMENT_COD_SHOP_ZONE 0) ) {
            
    $check_flag false;
            
    $check $db->Execute("select zone_id from " TABLE_ZONES_TO_GEO_ZONES " where geo_zone_id = '" MODULE_PAYMENT_COD_SHOP_ZONE "' and zone_country_id = '" $order->delivery['country']['id'] . "' order by zone_id");
            while (!
    $check->EOF) {
              if (
    $check->fields['zone_id'] < 1) {
                
    $check_flag true;
                break;
              } elseif (
    $check->fields['zone_id'] == $order->delivery['zone_id']) {
                
    $check_flag true;
                break;
              }
              
    $check->MoveNext();
            }

            if (
    $check_flag == false) {
              
    $this->enabled false;
            }
          }

    // disable the module if the order only contains virtual products
          
    if ($this->enabled == true) {
            if (
    $order->content_type != 'physical') {
              
    $this->enabled false;
            }
          }
        }

        function 
    javascript_validation() {
          return 
    false;
        }

        function 
    selection() {
          return array(
    'id' => $this->code,
                       
    'module' => $this->title);
        }

        function 
    pre_confirmation_check() {
          return 
    false;
        }

        function 
    confirmation() {
          return 
    false;
        }

        function 
    process_button() {
          return 
    false;
        }

        function 
    before_process() {
          return 
    false;
        }

        function 
    after_process() {
          return 
    false;
        }

        function 
    get_error() {
          return 
    false;
        }

        function 
    check() {
          global 
    $db;
          if (!isset(
    $this->_check)) {
            
    $check_query $db->Execute("select configuration_value from " TABLE_CONFIGURATION " where configuration_key = 'MODULE_PAYMENT_COD_SHOP_STATUS'");
            
    $this->_check $check_query->RecordCount();
          }
          return 
    $this->_check;
        }

        function 
    install() {
          global 
    $db;
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Cash On Delivery Module', 'MODULE_PAYMENT_COD_SHOP_STATUS', 'True', 'Do you want to accept Cash On Delivery payments?', '6', '1', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_COD_SHOP_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_COD_SHOP_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())");
          
    $db->Execute("insert into " TABLE_CONFIGURATION " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_COD_SHOP_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())");
       }

        function 
    remove() {
          global 
    $db;
          
    $db->Execute("delete from " TABLE_CONFIGURATION " where configuration_key in ('" implode("', '"$this->keys()) . "')");
        }

        function 
    keys() {
          return array(
    'MODULE_PAYMENT_COD_SHOP_STATUS''MODULE_PAYMENT_COD_SHOP_ZONE''MODULE_PAYMENT_COD_SHOP_ORDER_STATUS_ID''MODULE_PAYMENT_COD_SHOP_SORT_ORDER');
        }
      }
    ?>

  2. #2
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    What Shipping Modules do you have installed?
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  3. #3
    Join Date
    Mar 2008
    Location
    Belgium
    Posts
    115
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    Storepickup and zones.

  4. #4
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    In the update_status, just before the closing bracket add:
    Code:
    // hide this payment module when set to Store Pickup
    if ( is_object($$module) || ($_SESSION['shipping']['id'] == 'storepickup_storepickup') ) {
      echo 'should not run!!!';
            $this->enabled = false;
    }
    See how that works for you ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  5. #5
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    oops ... you will see that echo on the page if you leave it in there ... silly me ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

  6. #6
    Join Date
    Mar 2008
    Location
    Belgium
    Posts
    115
    Plugin Contributions
    6

    Have a Drink Re: How to disable "payment at storepickup" when the customer has the goods delivered

    Briann of the Dutch forum gave me a tip to check Edwin Wiering's Zen-Cart notes.

    The original code:
    PHP Code:

           $this
    ->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false); 
    The example of Edwin Wiering:
    PHP Code:

    //       $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true : false);
    // only show COD if STOREPICKUP is chosen by Edwin Wiering
           
    if (strstr($_SESSION['shipping']['id'],'storepickup')) {
            
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false);
           } 
    The endresult:
    PHP Code:

    //       $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true : false);
    // only show COD if STOREPICKUP is chosen by Edwin Wiering
    // altered to show COD_SHOP only if STOREPICKUP is chosen by Benny (thanks for the tip, Briann)
           
    if (strstr($_SESSION['shipping']['id'],'zones')) {
             
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'False') ? true false);
          }else{
            
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false);
          } 
    Now people can pay thru bank transfer or PayPal before pickup or shipping.
    Store payment is limited to storepickup.

    Ajeh, while typing and previewing I saw your post.
    Doesn't it block disable "payment at storepickup" when the customer does pickup? I want to block "payment at store when delevered".
    I think 'storepickup_storepickup' wil have to be 'zones'
    PHP Code:

    // hide this payment module when set to Store Pickup by Ajeh altered to when set to zones by Benny
    if ( is_object($$module) || ($_SESSION['shipping']['id'] == 'zones') ) {
            
    $this->enabled false;

    I'm going to try the change which works so far but I'm also going to put your code in behind '//' so I have a backup, just in case.
    Thanks, Ajeh!

  7. #7
    Join Date
    Mar 2008
    Location
    Belgium
    Posts
    115
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    The saga continues:

    PHP Code:

           
    if (strstr($_SESSION['shipping']['id'],'zones')) { 
             
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'False') ? true false); 
          }else{ 
            
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false); 
          } 
    has been changed into:
    PHP Code:

           
    if (strstr($_SESSION['shipping']['id'],'zones')) { 
             
    $this->enabled 'False'
          }else{ 
            
    $this->enabled = ((MODULE_PAYMENT_COD_SHOP_STATUS == 'True') ? true false); 
          } 
    Both work the same yet the old version would activate the module in the wrong way if this module was turn off in the admin.

  8. #8
    Join Date
    Sep 2003
    Location
    Ohio
    Posts
    69,402
    Plugin Contributions
    6

    Default Re: How to disable "payment at storepickup" when the customer has the goods delivered

    You have COD_SHOP and COD (the original module) ...

    It would be better if you had the file called:
    codshop.php

    and used:
    codshop
    CODSHOP

    so that there are no conflicts in the code ...

    Modules that are not in use should be REMOVED vs setting them to not being enabled ...
    Linda McGrath
    If you have to think ... you haven't been zenned ...

    Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!

    Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today: v1.5.5]
    Officially PayPal-Certified! Just click here

    Try our Zen Cart Recommended Services - Hosting, Payment and more ...
    Signup for our Announcements Forums to stay up to date on important changes and updates!

 

 

Similar Threads

  1. v154 A "space" appears in Customer record when inserting the State/County in "other" box
    By SarahL in forum Managing Customers and Orders
    Replies: 2
    Last Post: 30 Oct 2015, 09:45 AM
  2. v151 "The connection has timed out" when trying to login to Admin
    By serephent in forum Installing on a Windows Server
    Replies: 3
    Last Post: 19 Jan 2013, 10:35 AM
  3. How can I change the word "delivered" to "shipped"?
    By lmw1 in forum General Questions
    Replies: 3
    Last Post: 14 Jan 2010, 01:11 AM
  4. Paypal IPN: How to select "goods" "Service" as the kind of payment?
    By gisco in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 9 Jun 2009, 02:31 PM
  5. What's the best way to duplicate the "storepickup" shipping module?
    By organicplanet in forum Built-in Shipping and Payment Modules
    Replies: 25
    Last Post: 9 Apr 2009, 05:33 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR