Используя перегрузки или C# 4.0 использования или выше
private void GetVal(string sName, int sRoll)
{
if (sRoll > 0)
{
// do some work
}
}
private void GetVal(string sName)
{
GetVal("testing", 0);
}
Вы должны начать с создания собственного модуля в app / code / local. Создайте например каталоги Moak / Vip. Это будет корень вашего модуля.
Чтобы Magento узнал о его существовании, создайте файл с именем Moak_Vip.xml в etc / modules со следующим содержимым:
<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<active>true</active>
<codePool>local</codePool>
<self_name>Moak VIP module</self_name>
</Moak_Vip >
</modules>
</config>
Затем в каталоге вашего модуля вам понадобится следующая структура и файлы:
config.xml определяет ваш модуль и объявляет ваш слушатель событий для данного события ( checkout_onepage_controller_success_action
is отправляется, когда процесс одностраничной проверки завершен, sales_order_payment_pay
отправляется после подтверждения платежа).
Вам не нужна никакая настройка БД, так как вы не сохраните ни одного нового объекта. Итак, ваш файл конфигурации должен выглядеть примерно так:
<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<version>0.1.0</version>
</Moak_Vip>
</modules>
<global>
<models>
<moak>
<class>Moak_Vip_Model</class>
</moak>
</models>
<events>
<sales_order_payment_pay>
<observers>
<moak_observer>
<type>singleton</type>
<class>moak/observer</class>
<method>checkVipCustomer</method>
</moak_observer>
</observers>
</sales_order_payment_pay >
</events>
</global>
</config>
Теперь ваш метод Observer checkVipCustomer
должен получить объект события, из которого вы можете получить всю информацию о заказе, клиенте ... и выполнить модификации, которые вам нравятся.
Взгляните на классы модели Magento в app / code / core / Mage /.../ Model / ...
чтобы увидеть, как перемещаться по этим объектам.
Пример:
<?php
class Moak_Vip_Model_Observer
{
public function checkVipCustomer($event)
{
$order = $event->getInvoice()->getOrder(); // Mage_Sales_Model_Order
/*
- Check order amount
- Get customer object
- Set Group id
- $customer->save();
*/
return $this;
}
}
Примечание. Я не тестировал код, который написал здесь, поэтому обращайтесь с ним осторожно! Надеюсь, это помогло, у Magento сложная кривая обучения ... Удачи!
Вы можете создать наблюдателя для события «sales_order_payment_pay». Вот шпаргалка событий в magento 1.3.
И объяснение того, как создавать методы наблюдателя . Ссылки любезно предоставлены отличными сайтами activecodeline и inchoo.