/** * * @param Varien_Event_Observer $o */ public function afterSaveSubscription($o) { $newSubscriberInst = $o->getEvent()->getDataObject(); $newRSubscriberInst = Mage::getModel('rewards/newsletter_subscriber_wrapper')->wrap($newSubscriberInst); // We got a call back but the model appears to be different if ($newRSubscriberInst->getCustomer()->getId() != $this->_rsubscriber->getCustomer()->getId()) { return $this; } // check whether or not the user had already subscribed before saving. If so, call the // newsletter signup transfer model if ($newSubscriberInst->isSubscribed() && !$this->_wasSubscribed) { Mage::dispatchEvent('rewards_newsletter_new_subscription', array('subscriber' => $newRSubscriberInst->getSubscriber())); $transfer = $this->initReward($newRSubscriberInst->getSubscriber()); } return $this; }
/** * Creates a customer point-transfer of any amount or currency. * * @param $rule : Special Rule * @return boolean : whether or not the point-transfer succeeded */ public function createNewsletterSubscriptionPoints(TBT_Rewards_Model_Newsletter_Subscriber_Wrapper $rsubscriber, $rule) { $num_points = $rule->getPointsAmount(); $currency_id = $rule->getPointsCurrencyId(); $rule_id = $rule->getId(); $transfer = $this->initTransfer($num_points, $currency_id, $rule_id); $customer = Mage::getModel('rewards/customer')->getRewardsCustomer($rsubscriber->getCustomer()); $store_id = $customer->getStore()->getId(); if (!$transfer) { return false; } // get the default starting status - usually Pending $initial_status = Mage::helper('rewards/newsletter_config')->getInitialTransferStatusAfterNewsletter($store_id); if (!$transfer->setStatus(null, $initial_status)) { // we tried to use an invalid status... is getInitialTransferStatusAfterReview() improper ?? return false; } // Translate the message through the core translation engine (nto the store view system) in case people want to use that instead // This is not normal, but we found that a lot of people preferred to use the standard translation system insteaed of the // store view system so this lets them use both. $initial_transfer_msg = Mage::getStoreConfig('rewards/transferComments/newsletterEarned', $store_id); $comments = Mage::helper('rewards')->__($initial_transfer_msg); $customer_id = $rsubscriber->getCustomer()->getId(); $this->setNewsletterId($rsubscriber->getNewsletterId())->setComments($comments)->setCustomerId($customer_id)->save(); return true; }