Results 1 to 10 of 29

Threaded View

  1. #23
    Join Date
    Jan 2004
    Posts
    66,419
    Blog Entries
    7
    Plugin Contributions
    81

    Default Re: Block Customers' Paypal Email Address?

    There's an even better way, which now means you won't have to edit the PayPal PHP file anymore!

    That line that's replaced the part you were inserting before now allows the logic for your custom change to be handled by another file altogether. And that means it's easier for you to maintain the list without having to hunt through a huge long file to re-make the changes whenever an upgrade happens, or when you want to add another ID to the list.

    Create two new files on your server, as follows:

    1. /includes/auto_loaders/config.paypal_restricted_buyers.php
    Code:
    <?php
    /**
     * Autoloader to instantiate observer class
     */
    $autoLoadConfig[200][] = array('autoType'=>'class',
                                  'loadFile'=>'observers/class.paypal_restricted_buyers.php');
    $autoLoadConfig[200][] = array('autoType'=>'classInstantiate',
                                  'className'=>'paypal_restricted_buyers',
                                  'objectName'=>'paypal_restricted_buyers');
    2. /includes/classes/observers/class.paypal_restricted_buyers.php
    Code:
    <?php
    /**
     * Deny certain PayPal buyers (intended only to be used when certain buyers are chronic refunders or fraudulent but PayPal isn't shutting them down)
     *
     * @package observers
     * @copyright Copyright 2003-2011 Zen Cart Development Team
     * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
     * @version $Id: class.paypal_restricted_buyers.php 18039 2011-03-08 20:53:35Z drbyte $
     */
    
    class paypal_restricted_buyers extends base {
     /**  constructor method !
       *
       * Attach observer class to the global $zco_notifier and watch for a single notifier event.
       */
      //function paypal_restricted_buyers() {  //use this line if using old version of PHP (4 or lower), instead of the next line
      function __construct() {
        $this->attach($this, array('NOTIFY_PAYPAL_EXPRESS_CHECKOUT_PAYERID_DETERMINED'));
      }
     /**   Actual Method that does the desired activity
       *
       * Called by observed class when any of the notifiable events occur
       *
       * @param object $class
       * @param string $eventID
       */
      function update(&$class, $eventID, $paramsArray = array()) {
        $denied = array();
    
    
        // Set list of denied PayPal PAYERIDs here:
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
        $denied[] = 'PUT_PAYER_ID_HERE';
    
        //repeat additional lines ABOVE as needed, following the same pattern
    
        //---------------------------------------------------
        // Do not touch below:
        foreach($denied as $key=>$val) {
          if ($val != '' && $val != 'PUT'. '_PAYER_ID_' . 'HERE') {
            if ($paramsArray == $val) {
              $class->terminateEC('Sorry, your transaction cannot be completed at this time.', true, FILENAME_CHECKOUT_SHIPPING);
            }
          }
        }
      }
    }
    The part in red is the only thing you'll edit. Everything else should work exactly as-is.

    I recommend testing with your own ID for verification.
    Last edited by DrByte; 9 Mar 2011 at 01:04 AM. Reason: fixed typo
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

 

 

Similar Threads

  1. Update Customers Email Address
    By ricangem in forum Managing Customers and Orders
    Replies: 1
    Last Post: 4 May 2011, 05:01 PM
  2. Block customers by IP address?
    By muteyaar in forum General Questions
    Replies: 1
    Last Post: 10 Mar 2011, 06:35 AM
  3. Ban Customers (by email address).
    By TheOracle in forum All Other Contributions/Addons
    Replies: 52
    Last Post: 19 Nov 2009, 04:49 PM
  4. PayPal verified address in PayPal email and transaction record
    By dealbyethan.com in forum PayPal Website Payments Pro support
    Replies: 0
    Last Post: 13 Oct 2008, 02:11 PM
  5. Email to Customers - CC/BCC address
    By ARRSE in forum General Questions
    Replies: 6
    Last Post: 24 Apr 2007, 09:52 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