Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
- <event name="email_order_set_template_vars_before">
- <observer name="add_Custom_variable_to_Order"
- instance="[Vendor][ModuleName]ObserverObserverforAddCustomVariable" />
- </event>
- </config>
- <?php
- namespace [Vendor][ModuleName]Observer;
- use MagentoFrameworkEventObserverInterface;
- use MagentoFrameworkAppRequestDataPersistorInterface;
- use MagentoFrameworkAppObjectManager;
- class ObserverforAddCustomVariable implements ObserverInterface
- {
- protected $ruleFactory
- public function __construct(MagentoSalesRuleModelRuleFactory $ruleFactory) {
- $this->rulesFactory = $ruleFactory;
- }
- /**
- *
- * @param MagentoFrameworkEventObserver $observer
- * @return void
- */
- public function execute(MagentoFrameworkEventObserver $observer)
- {
- /** @var MagentoFrameworkAppActionAction $controller */
- $transport = $observer->getTransport();
- $couponCode = $this->createOneCoupon();
- if($couponCode){
- $transport['free-coupon'] = $couponCode;
- }
- }
- protected function createOneCoupon()
- {
- $ruleModel = $this->ruleFactory->create();
- $ruleModel->load({RulesID});
- try {
- $data = array(
- 'rule_id' => 1,
- 'qty' => 1,
- 'length' => '12',
- 'format' => 'alphanum',
- 'prefix' => 'free-shipping',
- 'suffix' => '',
- 'dash'=>0
- );
- /** @var $generator MagentoSalesRuleModelCouponMassgenerator */
- $generator = $this->_objectManager->get('MagentoSalesRuleModelCouponMassgenerator');
- if (!$generator->validateData($data)) {
- return false;
- } else {
- $generator->setData($data);
- $generator->generatePool();
- $generated = $generator->getGeneratedCount();
- $codes = $generator->getGeneratedCodes();
- return $codes[0];
- }
- } catch (MagentoFrameworkExceptionLocalizedException $e) {
- $this->_objectManager->get('PsrLogLoggerInterface')->critical($e);
- return false;
- } catch (Exception $e) {
- $this->_objectManager->get('PsrLogLoggerInterface')->critical($e);
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement