Source of file CustomersToGroupTask.php
Size: 1,691 Bytes - Last Modified: 2021-12-24T06:35:03+00:00
/var/www/docs.ssmods.com/process/src/src/Tasks/CustomersToGroupTask.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?php namespace SilverShop\Tasks; use SilverShop\Extension\ShopConfigExtension; use SilverStripe\Dev\BuildTask; use SilverStripe\ORM\DataObject; use SilverStripe\ORM\DB; use SilverStripe\Security\Member; /** * Adds all customers to an assigned group. * * @package shop * @subpackage tasks */ class CustomersToGroupTask extends BuildTask { protected $title = 'Customers to Group'; protected $description = 'Adds all customers to an assigned group.'; public function run($request) { $gp = ShopConfigExtension::current()->CustomerGroup(); if (empty($gp)) { return false; } $allCombos = DB::query( 'SELECT "ID", "MemberID", "GroupID" FROM "Group_Members" WHERE "Group_Members"."GroupID" = ' . $gp->ID . ';' ); //make an array of all combos $alreadyAdded = array(); $alreadyAdded[-1] = -1; if ($allCombos) { foreach ($allCombos as $combo) { $alreadyAdded[$combo['MemberID']] = $combo['MemberID']; } } $unlistedMembers = DataObject::get( Member::class, $where = '"Member"."ID" NOT IN (' . implode(',', $alreadyAdded) . ')', $sort = null, $join = 'INNER JOIN "SilverShop_Order" ON "SilverShop_Order"."MemberID" = "Member"."ID"' ); //add combos if ($unlistedMembers) { $existingMembers = $gp->Members(); foreach ($unlistedMembers as $member) { $existingMembers->add($member); echo '.'; } } else { echo 'no new members added'; } } } |