Making a custom add-on
This page guides you into developing your own add-on to safely modify AcyMailing features.
Creating my custom add-on
<?php
use AcyMailing\Core\AcymPlugin;
class plgAcymExampleaddon extends AcymPlugin
{
}
<?php
/*
* Plugin Name: Custom add-on for AcyMailing
* Description: Insert dynamic texts inside sent emails
* Version: 1.0
* Requires Plugins: acymailing
*/
use AcyMailing\Classes\PluginClass;
class myCustomAddonForAcyMailing
{
const INTEGRATION_PLUGIN_NAME = 'plgAcymExampleaddon';
private string $integrationName;
public function __construct()
{
register_deactivation_hook(__FILE__, [$this, 'disable']);
register_uninstall_hook(__FILE__, [$this, 'uninstall']);
add_action('acym_load_installed_integrations', [$this, 'register'], 10, 1);
$this->integrationName = strtolower(substr(self::INTEGRATION_PLUGIN_NAME, 7));
}
public function disable(): void
{
if (!$this->loadAcyMailingLibrary()) {
return;
}
$pluginClass = new PluginClass();
$pluginClass->disable($this->integrationName);
}
public function uninstall(): void
{
if (!$this->loadAcyMailingLibrary()) {
return;
}
$pluginClass = new PluginClass();
$pluginClass->deleteByFolderName($this->integrationName);
}
public function register(array &$integrations): void
{
$integrations[] = [
'path' => __DIR__,
'className' => self::INTEGRATION_PLUGIN_NAME,
];
}
private function loadAcyMailingLibrary(): bool
{
$ds = DIRECTORY_SEPARATOR;
$vendorFolder = dirname(__DIR__).$ds.'acymailing'.$ds.'vendor';
$initFile = dirname(__DIR__).$ds.'acymailing'.$ds.'back'.$ds.'Core'.$ds.'init.php';
return file_exists($vendorFolder) && include_once $initFile;
}
}
new myCustomAddonForAcyMailing();
Adding features to your custom add-on
Execute custom script on specific AcyMailing actionsInsert a dynamic text in an email for JoomlaInsert a custom block in an email for JoomlaInsert a dynamic text in an email for WordPressInsert a custom block in an email for WordPressLast updated