web-dev-qa-db-ja.com

virtuemart JDispatcher内のjasvscriptコード(php文字列にあります)をレンダリング/実行します。例:plgVmConfirmedOrder

Virtuemart JDispatcher内に記述されたいくつかのJavaScriptコードをレンダリング/実行したい:plgVmConfirmedOrder

例えば:

$script='console.log("this is dummy script");jQuery.ajax({url:'',type:'post',success:function(){console.log("task has been done")}})';

function plgVmConfirmedOrder(VirtuemartCart $cart,$order){
      $document=JFactory::getDocument();
      $document->addScriptDeclaartion($script);// this is not working
      How to do?
}
1
user10984

JavaScriptを適切にエスケープする必要があります。

$script='console.log("this is dummy script");jQuery.ajax({url:\'\',type:\'post\',success:function(){console.log("task has been done")}})';

そして、あなたはミススペル宣言

$document->addScriptDeclaartion($script);

そして、あなたはあなたのvmプラグインがインストールされていて、スイッチがオンになっていて動作していると思います。イベントが発生しているかどうかわからない場合は、コードを次のように変更します。

function plgVmConfirmedOrder(VirtuemartCart $cart,$order){
    echo "confirm order event fired";
    die();
}

それがうまくいかない場合、あなたの問題はjsの扱いとは異なります。

1
jamesgarrett