Перезаписать страницу темы WordPress с помощью плагина - PullRequest
0 голосов
/ 28 октября 2018

Я хочу перезаписать страницу темы, используя мой собственный плагин WordPress, я попытался добавить фильтр, но безрезультатно, я не хочу менять тему напрямую, потому что это плохая идея для каждого разработчика.это мой код плагина. Я добавил фильтр для проверки страниц

public function __construct(){
    add_filter('theme_file_path','customize_theme_pages', 99, 2 );
}

, и я попытался заменить страницу темы моей собственной страницей, например

public function customize_theme_pages($path, $file = ''){
        if( 'woocommerce/checkout--/form-checkout.php' === $file ) {
            return plugin_dir_url( __FILE__ ).'inc/form-checkout.php';
        }
        return $path;
}

, мне кажется, это логичное решение,но на моем сайте нет изменений

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете использовать фильтр woocommerce_locate_template для переопределения файла шаблона woocommerce из вашего плагина.

Быстрый пример, если вы хотите переопределить checkout/form-checkout.php с файлом inc/checkout/form-checkout.php вашего плагина:

function customize_theme_pages($template, $template_name, $template_path) {
    if ($template_name == 'checkout/form-checkout.php') {
        $template = plugin_dir_path( __FILE__ ) . 'inc/checkout/form-checkout.php';
    }
    return $template;
}

add_filter('woocommerce_locate_template', 'customize_theme_pages', 99, 3);

** Я тестировал приведенный выше код, и он работает на WooCommerce версии 3.5.0 , работающей на WordPress 4.9.8 .

Если выЕсли вы хотите заменить стандартный шаблон страницы, вы можете использовать фильтр page_template.

...