Как я могу убедиться, что дочерняя тема functions.php запущена - PullRequest
0 голосов
/ 07 июля 2019

Я купил Porto Wordpress Theme, создал и активировал дочернюю тему.

В дочерней теме я поместил файл functions.php, чтобы поле для выставления счетов Woocommerce было необязательным.

Нет закрывающего тега?>, Который может вызвать какие-либо проблемы.

//make billing fields not required in checkout
add_filter( 'woocommerce_billing_fields', 'wc_npr_filter_phone', 10, 1 );
function wc_npr_filter_phone( $address_fields ) {
$address_fields['billing_phone']['required'] = false;
    return $address_fields;
}

Я тоже поставил exit (); в файле, чтобы увидеть, что происходит, но ничего не происходит вообще.

Как я могу убедиться, что файл functions.php вызывается вообще.

Полное содержание functions.php

(Некоторые фрагменты могут быть устаревшими, но ни один из них не работает, и это странно).

    add_action( 'wp_enqueue_scripts', 'porto_child_css', 1001 );

    // Load CSS
    function porto_child_css() {
        // porto child theme styles
        wp_deregister_style( 'styles-child' );
        wp_register_style( 'styles-child', esc_url( get_stylesheet_directory_uri() ) . '/style.css' );
        wp_enqueue_style( 'styles-child' );
    }


    // Pre-populate Woocommerce checkout fields
    add_filter('woocommerce_checkout_get_value', function($input, $key ) {

        global $current_user;

        switch ($key) :
            case 'billing_first_name':
            case 'shipping_first_name':
                return "HEEEY".$current_user->first_name;
            break;

            case 'billing_last_name':
            case 'shipping_last_name':
                return $current_user->last_name;
            break;

            case 'billing_email':
                return $current_user->user_email;
            break;

            case 'billing_phone':
                return $current_user->phone;
            break;

        endswitch;

    }, 10, 2);




    // Remove some fields from Woocommerce

    add_filter( 'woocommerce_checkout_fields' , 'custom_remove_woo_checkout_fields' );

    function custom_remove_woo_checkout_fields( $fields ) {

        // remove billing fields
        //unset($fields['billing']['billing_first_name']);
        //unset($fields['billing']['billing_last_name']);
        unset($fields['billing']['billing_company']);
        unset($fields['billing']['billing_address_1']);
        unset($fields['billing']['billing_address_2']);
        unset($fields['billing']['billing_city']);
        unset($fields['billing']['billing_postcode']);
        unset($fields['billing']['billing_country']);
        unset($fields['billing']['billing_state']);
        unset($fields['billing']['billing_phone']);
        unset($fields['billing']['billing_email']);

        // remove shipping fields 
        unset($fields['shipping']['shipping_first_name']);    
        unset($fields['shipping']['shipping_last_name']);  
        unset($fields['shipping']['shipping_company']);
        unset($fields['shipping']['shipping_address_1']);
        unset($fields['shipping']['shipping_address_2']);
        unset($fields['shipping']['shipping_city']);
        unset($fields['shipping']['shipping_postcode']);
        unset($fields['shipping']['shipping_country']);
        unset($fields['shipping']['shipping_state']);

        // remove order comment fields
        unset($fields['order']['order_comments']);

        return $fields;
    }

    //make billing fields not required in checkout
    add_filter( 'woocommerce_billing_fields', 'wc_npr_filter_phone', 10, 1 );
    function wc_npr_filter_phone( $address_fields ) {
        $address_fields['billing_phone']['required'] = false;
            return $address_fields;
    }

    //make shipping fields not required in checkout
    add_filter( 'woocommerce_shipping_fields', 'wc_npr_filter_shipping_fields', 10, 1 );
    function wc_npr_filter_shipping_fields( $address_fields ) {
        $address_fields['shipping_first_name']['required'] = false;
        $address_fields['shipping_last_name']['required'] = false;
        $address_fields['shipping_address_1']['required'] = false;
        $address_fields['shipping_city']['required'] = false;
        $address_fields['shipping_postcode']['required'] = false;
            return $address_fields;
    }


    // Hide the "Expires" and "Downloads Remaining" columns from emails and My Account
    add_action( 'woocommerce_account_downloads_columns', 'custom_downloads_columns', 10, 1 ); // Orders and account
    add_action( 'woocommerce_email_downloads_columns', 'custom_downloads_columns', 10, 1 ); // Email notifications
    function custom_downloads_columns( $columns ){
        // Removing "Download expires" column
        if(isset($columns['download-expires']))
            unset($columns['download-expires']);

        // Removing "Download remaining" column
        if(isset($columns['download-remaining']))
            unset($columns['download-remaining']);

        return $columns;
    }

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Пока ваша дочерняя тема активна, она должна называться (перейдите на внешний вид> темы и убедитесь, что ваша дочерняя тема активна). Вам не нужен закрывающий тег в конце вашего functions.php, чтобы файл работал. Тем не менее, хорошим способом проверить это может быть вызов файла style.css, который находится в папке вашей дочерней темы. В верхней части вашего functions.php вы должны увидеть wp_enqueue_style.

Попробуйте также поставить в очередь дочернюю тему style.css с помощью get_stylesheet_directory_uri () (parrent style.css использует get_template_directory_uri).

Это должно выглядеть примерно так:

// enqueue styles for child theme
function example_enqueue_styles() {

    // enqueue parent styles
    wp_enqueue_style('parent-theme', get_template_directory_uri() .'/style.css');

    // enqueue child styles
    wp_enqueue_style('child-theme', get_stylesheet_directory_uri() .'/style.css', array('parent-theme'));

}
add_action('wp_enqueue_scripts', 'example_enqueue_styles');

Теперь перезагрузите свой сайт -> осмотрите сайт и выберите «вкладка Сеть». Отсюда вы можете увидеть все файлы, загруженные на ваш сайт. Попробуйте найти файл дочерней темы style.css. Если вы видите файл на вкладке своей сети, он вызывается наверняка.

0 голосов
/ 07 июля 2019

Поскольку это тема премиум-класса, вы должны получать поддержку и «правильное решение» только от вашей группы поддержки тем. Однако вы можете попытаться увеличить приоритет ловушки фильтра.

    // Default values already are '10', '1' increase '10' to '99' or more
    add_filter( 'woocommerce_billing_fields', 'wc_npr_filter_phone', 99 );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...