Отображение автоматически сгенерированного кода купона на странице успеха
Я использую Magento Enterprise 1.14.0.1 На success.phtml у меня есть php-код, который автоматически генерирует код купона. Код генерирует купон, который я вижу в администраторе Magento.Однако я не могу понять, как отобразить его на странице?
Вот мой код, который генерирует купон
//Below is code to generate a coupon code and display it in a jquery popup window
$todaysdateis = date('Y-m-d', strtotime('+1 year'));
$generator = Mage::getModel('salesrule/coupon_massgenerator');
$data = array
(
'max_probability' => .25,
'max_attempts' => 10,
'uses_per_customer' => 1,
'uses_per_coupon' => 1,
'qty' => 1, //number of coupons to generate
'length' => 14, //length of coupon string
'to_date' => "$todaysdateis", //ending date of generated promo
/**
* Possible values include:
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHANUMERIC
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHABETICAL
* Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_NUMERIC
*/
'format' => Mage_SalesRule_Helper_Coupon::COUPON_FORMAT_ALPHANUMERIC,
'rule_id' => 68 //the id of the shopping cart rule you will use as a template
);
$generator->validateData($data);
$generator->setData($data);
$generator->generatePool();
//get the generate coupon code
$salesRule = Mage::getModel('salesrule/rule')->load($data['rule_id']);
$collection = Mage::getResourceModel('salesrule/coupon_collection')
->addRuleToFilter($salesRule)
->addGeneratedCouponsFilter();
$thecode = $generator->getCode();
echo "Your Code Is $thecode";
//Конечный код для создания кода купона и отображения его во всплывающем окне jquery ?>
Цель состоит в том, что я хочу в конечном итоге отобразить это на странице не отправьте его по электронной почте.
1 answers
Начните с создания собственного модуля. Этот учебник объяснит, как это сделать.
Теперь нам понадобятся 3 вещи. Класс блоков, файл шаблона и XML-файл макета.
Конфигурация
app/code/local/[Namespace]/[Module]/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<[Namespace]_[Module]>
<version>1.0.0</version>
</[Namespace]_[Module]>
</modules>
<global>
<blocks>
<[namespace]_[module]>
<class>[Namespace]_[Module]_Block</class>
</[namespace]_[module]>
</blocks>
</global>
<frontend>
<layout>
<updates>
<[namespace]_[module]>
<file>ffm_codebin.xml</file>
</[namespace]_[module]>
</updates>
</layout>
</frontend>
</config>
Класс блоков будет содержать ваш код
app/code/local/[Namespace]/[Module]/Block/Coupon.php
Class [Namespace]_[Module]_Block_Coupon extends Mage_Core_Block_Template
{
public function getVoucherCode()
{
// your code goes here
// but instead of echo, return it
return $thecode;
}
}
Теперь для файла шаблона, отображающего код, это может быть довольно просто
app/design/fontend/base/default/template/[namespace]_[module]/coupon.phtml
<?php
$vouchercode = $this->getVoucherCode();
?>
Your voucher code is <?php echo $vouchercode; ?>
И XML-файл макета
app/design/fontend/base/default/layout/[namespace]_[module].xml
<?xml version="1.0"?>
<layout version="0.1.0">
<checkout_onepage_success>
<reference name="content">
<block type="[namespace]_[module]/coupon" name="couponcode" template="[namespace]_[module]/coupon.phtml"
</reference>
</checkout_onepage_success>
</layout>