Как передать номер заказа с одной страницы на другой внешний файл php в Magento? - PullRequest
0 голосов
/ 16 марта 2012

Я использую модель наблюдателя событий Magento на событии sales_order_place_after .Из этого я ловлю номер заказа. Тогда теперь я хочу передать этот заказ нет.который хранится в переменной другого внешнего php-файла, скажем external.php .Этот external.php содержит соединение с базой данных Magento, которая извлекает данные на основе Номер заказа , поэтому я хочу передать этот номер заказа этому запросу, а также мне нужно включить этот файл external.php в этот Observer.php, поэтому моя конечная цель состоит в том, чтобы после того, как клиент нажал вкладку Разместить заказ , файл external.php должен быть выполнен, так как он получит номер заказа, и он запустит запрос к базе данных и выполнит необходимую работу.

Так что, плз, помогите мне передать переменную с одной страницы на другой external.php, а также как включить / выполнить этот файл external.php в событии заказа места клиента (sales_order_place_after) ..

My Observer.php-:

    <?php   
include("connection/Final/external.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();       
} } ?>

Мой external.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 ";       
  }   
  } }

Как получить доступ к переменной $ incrementid в Function1.php?Таким образом, проблема в том, что я не могу получить доступ к $ incrementid, так как он не может быть вставлен в мою таблицу образцов.Я поймал событие sales_order_place_after.Так что, как только клиент нажмет PLACE ORDER, я могу включить Function1.php, и он получит инкремент / идентификатор заказа, и я смогу получить доступ к функциям, которые будут выполнять необходимую работу ...

Мои обновленные файлы-:http://www.sample.com/magento/app/code/local/Sample/Event/Model/Observer.php Observer.php

<?php

class Sample_Event_Model_Observer {

    public function Mytestmethod($observer) {

    $Id = $observer->getEvent()->getOrder()->getId();   
    $incrementid = $observer->getEvent()->getOrder()->getIncrementId();

        $cURL = curl_init(); 
        curl_setopt($cURL, CURLOPT_URL, "http://www.sample.com/magento/connection/Final/external.php?order_id=<?php echo $incrementid ?>"); 
        curl_setopt($cURL, CURLOPT_HEADER, 0); 
        curl_exec($cURL); 
        curl_close($cURL);  

    }
}
?>

Path-: http://www.sample.com/magento/connection/Final/external.php

external.php

<?php 
    echo "Hi";
    $orderID = $_GET['incrementid']; 
    echo $orderID;  
?>

Мне нужно использовать это значение переменной $ orderID в функции ниже?Как сделать то же самое?Помоги мне Plaese ...

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

Так просто ... Вы можете использовать метод GET в external.php.

На странице наблюдателя

$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, "http://www.example.com/external.php?order_id=<?php echo $orderId ?>");
curl_setopt($cURL, CURLOPT_HEADER, 0);
curl_exec($cURL);
curl_close($cURL);

В external.php вы можете получить значение переменной методом GET, который мы отправили по параметру URL.

$orderID = $_GET['order_id'];
0 голосов
/ 16 марта 2012

Используя curl , вы можете сделать это

$data => array('data'); // array of your data

$ExternalLibPath => 'your extenal file page';

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERPWD, "$username:$passsword");
curl_setopt($ch, CURLOPT_URL, $ExternalLibPath);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...