如何使用事件观察者模型在事件sales_order_place_after获取订单号? 我希望在客户下订单后立即获得订单号。 PLZ为我提供相同的示例代码? 我想通过那个命令没有。到另一个外部的PHP文件&在Observer.php中包含那个php文件?我怎么能这样做?
Plz帮助我......
嗨,我想在Magento中包含外部php文件,但我无法做到这一点。任何人都可以告诉我我做错了什么 -
Observer.php-:
<?php
include("connection/Final/Function1.php");
class Sample_Event_Model_Observer {
public function Mytestmethod($observer) {
$event = $observer->getEvent(); //Fetches the current event
$eventmsg = "Current Event Triggered : <I>" . $event->getName() . "</I>";
echo Mage::getSingleton('checkout/session')->addSuccess($eventmsg);
$Id = $observer->getEvent()->getOrder()->getId();
$incrementid = $observer->getEvent()->getOrder()->getIncrementId();
$ordermsg1 = "Current order Id : <I>" . $Id . "</I>";
echo Mage::getSingleton('checkout/session')->addSuccess($ordermsg1);
$ordermsg2 = "Current increment Id : <I>" . $incrementid . "</I>";
echo Mage::getSingleton('checkout/session')->addSuccess($ordermsg2);
$p = new testDatabase();
$p -> setId($incrementid);
$p -> dbConnect();
}
}
?>
Function1.php - :
<?php
class testDatabase
{
public function setId($getId)
{
$incrementid=$getId;
echo $incrementid;
}
public function dbConnect()
{
$db_name = "magento";
$con = mysql_connect("localhost", "magento", "password");
If (!$con)
{
die('Could not connect: ' . mysql_error());
}
$seldb = mysql_select_db($db_name, $con);
If ($seldb)
{
echo "Database Found ";
$query = "INSERT INTO sample(id) VALUES($incrementid)" ;
$result = mysql_query($query);
print "id is added to the database";
mysql_close($seldb);
}
else
{
echo "Database NOT Found ";
}
}
}
如何在Function1.php中访问变量$ incrementid?所以问题是我无法访问$ incrementid,因为它无法插入我的示例表中。我抓住了sales_order_place_after事件。因此,一旦客户按下PLACE ORDER,我就可以包含Function1.php&amp;它将采取增量/订单ID&amp;我能够访问其中需要工作的功能...... Plaese帮助我......
答案 0 :(得分:6)
您可以从活动
获取此信息$observer->getEvent()->getOrder()->getId()
$observer->getEvent()->getOrder()->getIncrementId()
包含外部文件的重点是什么:)您可以通过
加载任何模型 Mage::getModel('your/extension_model')
或者如果你正在做意大利面,就像你的问题所示,请使用require('path/to/file')
,并记住这是一个很大的nono。