2

アイテムがカートに追加されるたびにメソッドを起動し、チェックアウトが発生したときにメソッドを起動する必要があるこの単純なプラグインを作成することができました。しかし、これらのメソッドはとにかく起動しません。また、plgVmOnAddToCart を使用し、そこで正しく起動する、stockable という名前の別のプラグインも見ました。しかし、私のプラグインクラスではまったく起動しません。プラグインのコードは次のとおりです。機能させるにはどうすればよいですか? ありがとうございました

<?php
defined('_JEXEC') or    die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' ) ;

if (!class_exists('vmCustomPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmcustomplugin.php');

class plgVmAftercheckout extends vmCustomPlugin {
    private $stockhandle = 0;

    function __construct(& $subject, $config) {
        parent::__construct($subject, $config);

        $varsToPush = array(
            'selectname1'=>array('','char'),'selectname2'=>array('','char'),'selectname3'=>array('','char'),'selectname4'=>array('','char'),
            'selectoptions1'=>array('','char'),'selectoptions2'=>array('','char'),'selectoptions3'=>array('','char'),'selectoptions4'=>array('','char')
        );

        $this->setConfigParameterable('custom_params',$varsToPush);

    }

    public function plgVmOnAddToCart(&$product){

        echo "plgVmOnAddToCart fired";
        die();
    } 
    public function plgVmOnUserInvoice(){
        echo "plgVmOnUserInvoice fired";
        die();
    }


}

?>
4

1 に答える 1

3

私は解決策を見つけました。問題はクラス名でした。joomla 1.5 のドキュメント http://docs.joomla.org/Creating_a_Plugin_for_Joomla_1.5 では、クラス名は次の規則に従わなければならないことが記載されています: class plg extends JPlugin既知のルール」。だから私の解決策は、クラス名を

class plgVmAftercheckout extends vmCustomPlugin { 

class plgVmCustomAftercheckout extends vmCustomPlugin {

「カスタム」は、プラグインがカスタムという特定のグループに属しているためです。したがって、これらのフック メソッドにイベントを監視させるには、グループ名を指定する必要があります。

于 2012-10-12T18:33:48.420 に答える