Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author lilaeamedia

    (@lilaeamedia)

    weeaboodesu,

    The best place to start is the WordPress Codex.

    Editing functions.php is dangerous territory if you are new to WordPress or PHP. Because the file is included (run) by WordPress, any mistakes in the code will throw errors, and possibly crash your site.

    If your site allows it, Child Theme Configurator provides a quick link to the Theme Editor from the Files tab. Just click the link from the message you mentioned in your post above.

    Because this is such a vast topic, we would prefer that if you have general WordPress or PHP questions you do not post them here. Instead, use the many forums available on the subject, like WordPress Development.

    Hi, Thanks for a great, well-thought-out plugin!

    I need to override functions.php in my child theme. Please advise where my code should go relative to the boilerplate code that CTC adds.

    In other words, should I place my code:

    A. Between the opening php tag, and the “// Exit if accessed directly” code,
    B. Between the “// Exit if accessed directly” code and the “// BEGIN ENQUEUE PARENT ACTION”,
    C. After the “// END ENQUEUE PARENT ACTION”.

    Thanks!

    Plugin Author lilaeamedia

    (@lilaeamedia)

    The “exit if directly” code should be at the top. It prevents direct execution of the php file.

    Your code can go anywhere else, as long as it does not fall inside any of the //BEGIN and //END markers. Anything between them will be automatically replaced by the plugin when the files are updated by CTC.

    CTC uses the same method to configure the functions file that WordPress uses to update the .htaccess file for permalinks.

    Thank you. This is exactly what I needed to know. Much appreciated.

    Thread Starter Nick

    (@weeaboodesu)

    Hey! Sorry for late reply your posts were extremely helpful!!

    Just another quick question, how would you go about editing plugin files? In particular the Woocommerce content-product.php. Can you edit this file like the functions.php and maintain the changes after an update? Is this an option for the Pro upgrade?

    Thanks!

    Plugin Author lilaeamedia

    (@lilaeamedia)

    The correct way to customize a plugin is to hook into the action and filter hooks using your child theme functions file. Do not edit the plugin code directly or your changes will be overwritten with the next update.

    Start with this Codex article:

    WooCommerce is well documented. You can often do exactly what you need with a few lines of code.

    This is an example of a woocommerce hook I use to generate the update key for each order:

    function lilaea_add_update_key($order)	{
        $key = '';
    
        foreach($order->get_items() as $item):
            $download_file_urls = $order->get_item_downloads( $item );
            foreach ( $download_file_urls as $id => $downloadarr ):
                $regex = '#\&order=wc_order_(.+?)\&#';
                preg_match($regex, $downloadarr['download_url'], $matches);
                if (!empty($matches[1])):
                    $key = $matches[1];
                    break;
                endif;
            endforeach;
            if ($key) break;
        endforeach;
        if (!empty($key))
            echo '<tr class="product-purchase-note"><td colspan="3">Update Key: <strong>' . $key . '_' . $order->id . '</td></tr>';
    }
    add_action(     'woocommerce_order_items_table',        'lilaea_add_update_key'                   );

    This is an example of a hook I use with Contact Form 7:

    function lilaea_filter_components($components, $form) {
        if ($counter = get_option('lilaea_contact_counter'))
            $counter++;
        else $counter = 1;
        update_option('lilaea_contact_counter', $counter);
        $components['subject'] .= ' [' . sprintf("%05d", $counter) . ']';
        return $components;
    }
    function lilaea_additional_mail($additional_mail, $form) {
        remove_filter('wpcf7_mail_components', 'lilaea_filter_components');
        return $additional_mail;
    }
    add_filter('wpcf7_additional_mail', 'lilaea_additional_mail', 10, 2);
    add_filter('wpcf7_mail_components', 'lilaea_filter_components', 10, 2);
    Thread Starter Nick

    (@weeaboodesu)

    OK thanks so much for your help!

    Hi,

    I have successfully used this plugin to format fonts in my site

    textiletrails.com.au

    Thankyou!

    Now I want to add a Mailchimp newsletter form to all my individual posts.

    MailChimp support says (at https://mc4wp.com/kb/add-form-posts-automatically/) to paste this into my functions.php:

    /**
    * Adds a form to the end of all single posts
    *
    * @param string $content
    *
    * @return string $content
    */
    function myprefix_add_form_to_posts( $content ) {

    // Change to ID of the form you want to add
    $form_id = 0;

    // Check if this is a single post.
    if ( is_singular( ‘post’ ) ) {

    // Add the form to the end of the post content.
    $content .= mc4wp_get_form( $form_id );

    }

    // Returns the content.
    return $content;
    }

    add_filter( ‘the_content’, ‘myprefix_add_form_to_posts’ );

    Firstly, this does not look to me like something I should paste in exactly as it is.

    Secondly, I’m not sure how to add this correctly using your plugin, but really don’t want to add it manually and risk crashing my site.

    Thankyou for any help you can provide!

    Plugin Author lilaeamedia

    (@lilaeamedia)

    Wendy,

    This code is fine but to be safe, deactivate the child theme first (by activating the parent theme).

    You should also enable debugging by modifying wp-config.php around line 80:

    define('WP_DEBUG', false);

    to:

    define('WP_DEBUG', TRUE );

    This has to be done manually as it is not accessible to the Editor.

    Then go to Appearance > Editor and select the child theme from the menu at the top right.

    When the child theme file menu loads on the right, click “Theme Functions.”

    Paste the code at the bottom of the input area. Make sure it is outside (after) the CTC auto-generated code and comments.

    Everywhere you see “myprefix” change it to something unique to your theme, like “textiletrails.”

    Test the code by going to Appearance > Themes and clicking “Live Preview” under the child theme panel.

    Navigate to a post and you should see the mailchimp form.

    If there are any syntax errors, they will be displayed in the browser. Since the child theme is not active, this will not crash your site.

    Once everything looks right, turn off debugging and reactivate the child theme.

    Hi, the child theme plugin is great, but I have paste e short code on the funtions.php file, then cancel it and now my site has crushed…is there a way to recover the funtions.php code?

    I cannot identify the error in the code…can you help me please? the code as I see it right nos is this:

    <?php
    // Exit if accessed directly
    if ( !defined( ‘ABSPATH’ ) ) exit;

    // BEGIN ENQUEUE PARENT ACTION
    // AUTO GENERATED – Do not modify or remove comment markers above or below:

    if ( !function_exists( ‘chld_thm_cfg_parent_css’ ) ):
    function chld_thm_cfg_parent_css() {
    wp_enqueue_style( ‘chld_thm_cfg_parent’, trailingslashit( get_template_directory_uri() ) . ‘style.css’ );
    }
    endif;
    add_action( ‘wp_enqueue_scripts’, ‘chld_thm_cfg_parent_css’ );

    // END ENQUEUE PARENT ACTION

    Plugin Author lilaeamedia

    (@lilaeamedia)

    Rcai:

    Follow these instructions:

    https://www.childthemeconfigurator.com/child-theme-faqs/#broken_theme

    Then enable debugging by modifying wp-config.php around line 80:

    define(‘WP_DEBUG’, false);

    to:

    define(‘WP_DEBUG’, TRUE );

    This has to be done manually as it is not accessible to the Editor.

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘Editing functions.php’ is closed to new replies.