Ich bin gerade dabei ein Plugin für den Woocommerce- Connector zu schreiben. Ich habe mich hierbei an Plugins aus dem Forum und an dem Demo-Plugin von gitlab orientiert.
Allerdings scheint es so zu sein, dass dieses entweder nicht geladen wird oder das Event nicht ausgelöst wird.
Ordner: variantimages
darin liegt die bootstrap.php
außerdem gibt es den Ordner listener mit der ProductListener.php
normalerweise sollte doch wenn ich am Artikel was geändert habe und diesen zum Shop synce das Plugin greifen oder?
Oder habe ich hier einen generellen Denkfehler
Allerdings scheint es so zu sein, dass dieses entweder nicht geladen wird oder das Event nicht ausgelöst wird.
Ordner: variantimages
darin liegt die bootstrap.php
Code:
<?php
namespace variantimages;
use \jtl\Connector\Plugin\IPlugin;
use \jtl\Connector\Event\Product\ProductAfterPushEvent;
use \Symfony\Component\EventDispatcher\EventDispatcher;
use \variantimages\listener\ProductListener;
class Bootstrap implements IPlugin
{
public function registerListener(EventDispatcher $dispatcher)
{
$dispatcher->addListener(ProductAfterPushEvent::EVENT_NAME, [
new ProductListener(),
'onProductAfterPushAction'
]);
}
}
außerdem gibt es den Ordner listener mit der ProductListener.php
Code:
<?php
namespace variantimages\listener;
use \jtl\Connector\Event\Product\ProductAfterPushEvent;
use \jtl\Connector\Core\Logger\Logger;
use \jtl\Connector\Formatter\ExceptionFormatter;
use \jtl\Connector\Core\Utilities\Language as LanguageUtil;
class ProductListener
{
public function onProductAfterPushAction(ProductAfterPushEvent $event)
{
$fp=fopen("test.txt","a");
fputs($fp,"test");
fclose($fp);
if (strlen($event->getProduct()->getId()->getEndpoint()) == 0) {
return;
}
try {
$fp=fopen("test.txt","a");
fputs($fp,$event->getProduct()->getId()."#");
fputs($fp,$event->getProduct()->getId()->getEndpoint()."#");
fclose($fp);
} catch (\Throwable $e) {
Logger::write(ExceptionFormatter::format($e), Logger::WARNING, 'plugin');
}
}
}
normalerweise sollte doch wenn ich am Artikel was geändert habe und diesen zum Shop synce das Plugin greifen oder?
Oder habe ich hier einen generellen Denkfehler