Subscription when placing an order for unauthorized users in Bitrix
The last notes
All English-language materials have been translated fully automatically using the Google service
When you have a live online store and there are constant purchases by "peeking" customers on it, you don't want it to be his first and last purchase, so it would not be bad to invite him to subscribe to news and promotions, suddenly there is something else will interest you
To do this, go to Store -> Settings -> Order Properties -> Property List
and create fields of type Y / N. Set the mnemonic code as you wish. But remember the ID of the properties, we need it to access the array of order properties $arFields ['ORDER_PROP' ]
Next, in the init.php file, we will place a handler that will subscribe the user to all categories, you can naturally subscribe to one or two as you wish by simply setting your id in the $ RUB_ID array.
AddEventHandler ('sale', 'OnOrderAdd', Array ("OnSaleComponentOrderCreatedClass", "Subscrible"));
class OnSaleComponentOrderCreatedClass
{
function Subscrible ($ ID, & $ arFields)
{
if ($ arFields ['ORDER_PROP'] [23] == 'Y') {// if the subscription box is checked
$ USER = false;
CModule :: IncludeModule ("subscribe"); // Include the subscription module
$ RUB_ID = array ();
$ rsRubric = CRubric :: GetList (array (), array ("ACTIVE" => "Y"));
while ($ arRubric = $ rsRubric-> GetNext ()) {
$ RUB_ID [] = $ arRubric ['ID'];
}
/ * create an array for subscription * /
$ subscr = new CSubscription;
$ arFields = Array (
"USER_ID" => $ USER, // Create an anonymous subscription without linking to a user, but you can specify any ID
"FORMAT" => "html / text",
"EMAIL" => $ arFields ['ORDER_PROP'] [2], // email of the user in my property number 2
"ACTIVE" => "Y",
"RUB_ID" => $ RUB_ID,
"SEND_CONFIRM" => "N",
"CONFIRMED" => "Y"
);
$ subscr-> Add ($ arFields, SITE_ID);
}
}
}
Comments