Плагин WordPress (Singleton) — не могу добавить новую конечную точку WooCommerce и flush_rewrite_rules

Я создаю плагин WordPress (структурированный как Singleton), который при активации вставляет три новые конечные точки WooCommerce (каждая конечная точка хранится в отдельном файле, содержащем класс конечной точки). Наконец, обязательный flush_rewrite_rules() называется. Флеш должен произойти после три конечные точки были вставлены или конечные точки будут 404 при посещении.

Я хочу избежать необходимости активировать 4 отдельных плагина (мой плагин + 3 плагина конечных точек). Если возможно, предпочтительнее всего одна активация плагина.

До сих пор :

Мой плагин активирует ОК, и конечные точки «визуально появляются» ОК в навигации, но будут 404 при посещении. и нужна ручная промывка.

Ключевые проблемы:

  1. Где лучше include три файла класса Endpoint внутри моего плагина Singleton? Топ плагин? Внутри __construct? Или после плагина?
  2. Где лучше всего звонить в классы после их включения?
  3. Как обеспечить вызов flush_rewrite_rules после три новые конечные точки были вставлены. Вызов flush_rewrite_rules() внутри register_activation_hook() кажется, не исправить 404ing конечных точек.

Вот мой абстрактный код:

/* Include endpoint files here? */
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint1.php');
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint2.php');
include_once( plugin_dir_path( __FILE__ ) . 'classes/endpoint3.php');class My_Plugin {

private $endpoint1 = null;
private $endpoint2 = null;
private $endpoint3 = null;

private static $instance;

public static function getInstance() {
if (self::$instance == NULL) {
self::$instance = new self();
}

return self::$instance;
}

private function __construct() {
/*Call the endpoint classes here? */
$this->$endpoint1 = new Endpoint1();
$this->$endpoint1 = new Endpoint2();
$this->$endpoint1 = new Endpoint3();
}
public static function install() {
flush_rewrite_rules();
}
} /*End Class*/

My_Class::getInstance();

/*Flush rewrite rules here? */
register_activation_hook( __FILE__, array( 'My_Plugin', 'install' ) );

Любая помощь приветствуется <3

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]