Instantly share code, notes, and snippets.

Embed
What would you like to do?
Magento 1 Customer Delete Shell Class
<?php
require_once 'abstract.php';
class Mage_Shell_Customer extends Mage_Shell_Abstract
{
/**
* Run script
*
*/
public function run()
{
$collection = Mage::getModel('customer/customer')->getCollection()
->addAttributeToSelect('firstname')
->addAttributeToSelect('lastname')
->addAttributeToSelect('email');
if (!$this->getArg('delete') && !$this->getArg('print')) {
printf("ERROR: Either --delete or --print must be specified\n");
exit(1);
}
if ($name = $this->getArg('firstname'))
$collection->addAttributeToFilter('firstname', array('like' => $name));
if ($name = $this->getArg('lastname'))
$collection->addAttributeToFilter('lastname', array('like' => $name));
if ($email = $this->getArg('email'))
$collection->addAttributeToFilter('email', array('like' => $email));
foreach ($collection as $item) {
if ($this->getArg('delete')) {
printf("Deleting ID:%s\n", $item->getId());
$item->delete();
} else {
printf("%s\t%s\n",
str_pad($item->getFirstname() . $item->getLastname(), 50),
$item->getEmail()
);
}
}
}
/**
* Retrieve Usage Help Message
*
*/
public function usageHelp()
{
return <<<USAGE
Usage: php -f customer.php -- [options]
--firstname Filter by first name
--lastname Filter by last name
--email Filter by email
--delete Delete matching users
--print Display matching users
USAGE;
}
}
$customer = new Mage_Shell_Customer();
$customer->run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment