Я использую wordpress 5.2.3
, кроме того, я пытаюсь кодировать свой собственный тег для плагина mailster 2.4.4
, плагин для рассылки WordPress.
В документации к плагину написано , что яследует просто добавить действие mailster_add_tag
к functions.php
.
Однако я пытаюсь создать свой собственный плагин, так как в будущем будет добавлено больше функциональности / сложности:
My newsletter.php
:
<?php
/**
Plugin Name: Newsletter Extension
description: Mailster Newsletter Extension
Version: 1.0
Author: Batman
License: GPLv2 or later
Text Domain: newsletter
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class Newsletter {
/**
* Constructor.
*/
public function __construct() {
// constants.
define( '_FILE', __FILE__ );
define( '_DIR', trailingslashit( dirname( __FILE__ ) ) );
define( '_VERSION', '0.0.1' );
register_activation_hook( basename( _DIR ) . '/' . basename( _FILE ), array( $this, 'activate' ) );
add_action( 'plugins_loaded', array( $this, 'includes' ) );
}
/**
* Called on plugin activation
*/
public function activate() {
$this->includes();
$this->addCustomTags();
flush_rewrite_rules();
}
/**
* Includes.
*/
public function includes() {
include_once( _DIR . 'includes/DailyTemplate.php' );
}
/**
* Includes.
*/
public function addCustomTags() {
DailyTemplate::addMyTag();
}
}
new Newsletter();
Внутри моего includes/DailyTemplate.php
:
<?php
class DailyTemplate {
public function __construct() { }
public function addMyTag() {
if ( function_exists( 'mailster_add_tag' ) ) {
mailster_add_tag( 'coupon', function( $option, $fallback, $campaignID = null, $subscriberID = null ) {
// make sure the subscriber ID is set
if ( ! is_null( $subscriberID ) ) {
return get_subscribers_coupon( $subscriberID );
}
// return the fallback "NOCOUPONCODE4U"
return $fallback;
} );
}
}
function get_subscribers_coupon( $subscriber_id ) {
$seed = AUTH_SALT;
$length = 10;
$code = substr( strtoupper( base_convert( md5( $seed . $subscriber_id ), 16, 36 ) ), 0, $length );
return $code;
}
}
new DailyTemplate();
При запуске приведенного выше кода я не получаю никакой ошибки.
Однако, похоже,мне, что плагин не загружен, потому что - как указано в документации - нет тега в раскрывающемся списке редактора . (см. рисунок на странице)
Есть предложения, что я делаю неправильно, чтобы загрузить тег? Я использую неправильный крючок?
Я ценю ваши ответы!