У меня есть класс, который регистрирует новую конечную точку, переписывает правила и затем сбрасывает ее.Он работает отлично, за исключением того, что он также выдает ошибку 404, делая заголовок страницы «страница не найдена» и добавляя некоторые CSS, которые я не хочу.Мне нужно сделать так, чтобы он действительно знал, что моя страница существует.
Это класс, который я написал:
<?php
use Jigoshop\Helper\Render as RenderCore;
use Jigoshop\Frontend\Page\PageInterface;
use Jigoshop\Integration\Helper\Render;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class twizo_Jigoshop_TFASettings implements PageInterface
{
function __construct()
{
Render::addLocation('twizo-verification', __DIR__);
add_action('init', function () {
add_rewrite_endpoint("twizo-verification", EP_ROOT | EP_PAGES |
EP_PERMALINK);
add_filter('generate_rewrite_rules', function ($rewrite) {
$mySettings = [
'^account/twizo-verification/?$' => 'index.php?
pagename=twizo-verification'
];
$rewrite->rules = $mySettings + $rewrite->rules;
return $rewrite->rules;
});
flush_rewrite_rules();
});
add_filter('jigoshop.frontend.page_resolver.page', function ($args) {
global $wp_query;
if ($wp_query->query['pagename'] == 'twizo-verification') {
return $this;
}
return $args;
});
}
public function action()
{
$this->renderTFASettings();
}
public function render()
{
}
public function renderTFASettings()
{
add_action('jigoshop\template\shop\content\before', function () {
echo '<h1>My account » 2FA Settings</h1>';
});
add_action('jigoshop\template\shop\content\after', function() {
echo '<br><a href="./" class="btn btn-default">Go back to My
account</a>';
});
switch(get_template()) {
case "twentyfifteen":
RenderCore::output('layout/twentyfifteen', [
'content' => Render::get('twizo-verification', 'tfa-
settings-body', array())
]);
break;
case "twentysixteen":
RenderCore::output('layout/twentysixteen', [
'content' => Render::get('twizo-verification', 'tfa-
settings-body', array())
]);
break;
case "twentyseventeen":
RenderCore::output('layout/twentyseventeen', [
'content' => Render::get('twizo-verification', 'tfa-
settings-body', array())
]);
break;
default:
RenderCore::output('layout/default', [
'content' => Render::get('twizo-verification', 'tfa-
settings-body', array())
]);
break;
}
exit;
}
}