Support » Plugin: Meta Box - WordPress Custom Fields Framework » Data not displaying in front end when WooCommerce is enabled

  • Hello,

    as the title says. When the WooCommerce plugin is enabled rwmb values are not displayed in the front end. When WooCommerce is disabled everything works as expected.

    How do I get Meta Box values to display when WooCommerce is enabled?

    Meta Box is version 4.6, WooCommerce is version 2.4.8, and WP core is version 4.3.1.

    Have tried with WooThemes’ Uno Canvas child theme and with Twenty Fifteen of which neither work.

    https://wordpress.org/plugins/meta-box/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Contributor Manny Fleurmond

    (@funkatronic)

    Sorry, I don’t know enough about WooComerce to debug this at the moment. We’ll do research to figure out whats going on. Sounds to me that there a filter or something that is preventing the values from showing up. Can you post the code you are using to display the values?

    Hello Manny,

    and thanks for a great plugin. Here’s the code.

    metab-hero.php, included in functions.php:

    <?php
    
    add_filter('rwmb_meta_boxes', 'lullebiegga_register_metaboxes');
    
    /**
     * Register meta boxes
     *
     * Remember to change "your_prefix" to actual prefix in your project
     *
     * @param array $meta_boxes List of meta boxes
     *
     * @return array
     */
    function lullebiegga_register_metaboxes($meta_boxes)
    {
    
        /**
         * prefix of meta keys (optional)
         * Use underscore (_) at the beginning to make keys hidden
         * Alt.: You also can make prefix empty to disable it
         */
        // Better has an underscore as last sign
        $prefix = 'lullebiegga_';
    
        $meta_boxes[] = array(
            // Meta box id, UNIQUE per meta box. Optional since 4.1.5
            'id' => 'hero',
    
            // Meta box title - Will appear at the drag and drop handle bar. Required.
            'title' => __('Lullebiegga Hero Images', 'meta-box'),
    
            // Post types, accept custom post types as well - DEFAULT is 'post'. Can be array (multiple post types) or string (1 post type). Optional.
            'post_types' => array('post', 'page'),
    
            // Where the meta box appear: normal (default), advanced, side. Optional.
            'context' => 'normal',
    
            // Order of meta box: high (default), low. Optional.
            'priority' => 'high',
    
            // Auto save: true, false (default). Optional.
            'autosave' => true,
    
            // Show this meta box for posts matched below conditions
            'show' => array(
                // With all conditions below, use this logical operator to combine them. Default is 'OR'. Case insensitive. Optional.
                'relation' => 'OR',
    
                // List of page templates (used for page only). Array. Optional.
                'template' => array('template-homepage.php'),
    
            ),
    
            // List of meta fields
            'fields' => array(
                // MAIN HERO
                array(
                    'type' => 'heading',
                    'name' => __( 'Main Image', 'meta-box' ),
                    'id'   => 'fake_id', // Not used but needed for plugin
                ),
                // Image
                array(
                    'name' => __('Image', 'meta-box'),
                    'id' => "{$prefix}main_image",
                    'type' => 'image_advanced',
                    'max_file_uploads' => 1,
                ),
                // Header
                array(
                    'name' => __('Text on image', 'meta-box'),
                    'id' => "{$prefix}main_text",
                    'type' => 'text',
                    'clone' => false,
                ),
                // Button
                array(
                    'name' => __('Button text', 'meta-box'),
                    'id' => "{$prefix}main_button_text",
                    'type' => 'text',
                    'clone' => false,
                ),
                // Button link
                array(
                    'name' => __( 'Button link', 'meta-box' ),
                    'id'   => "{$prefix}main_button_link",
                    'type' => 'text',
                    'clone' => false,
                ),
                // 1ST SUB
                array(
                    'type' => 'heading',
                    'name' => __( 'Secondary Image 1', 'meta-box' ),
                    'id'   => 'fake_id', // Not used but needed for plugin
                ),
                // Image
                array(
                    'name' => __('Image', 'meta-box'),
                    'id' => "{$prefix}sec1_image",
                    'type' => 'image_advanced',
                    'max_file_uploads' => 1,
                ),
                // Button link
                array(
                    'name' => __( 'Image link', 'meta-box' ),
                    'id'   => "{$prefix}sec1_link",
                    'type' => 'text',
                    'clone' => false,
                ),
                // 2ST SUB
                array(
                    'type' => 'heading',
                    'name' => __( 'Secondary Image 2', 'meta-box' ),
                    'id'   => 'fake_id', // Not used but needed for plugin
                ),
                // Image
                array(
                    'name' => __('Image', 'meta-box'),
                    'id' => "{$prefix}sec2_image",
                    'type' => 'image_advanced',
                    'max_file_uploads' => 1,
                ),
                // Button link
                array(
                    'name' => __( 'Image link', 'meta-box' ),
                    'id'   => "{$prefix}sec2_link",
                    'type' => 'text',
                    'clone' => false,
                ),
            ),
        );
        return $meta_boxes;
    }

    functions.php

    // Home page hero area
    function home_page_hero() {
        if (is_front_page()) {
    
            $main_image = reset(rwmb_meta( 'lullebiegga_main_image', 'type=image_advanced'));
            $main_image_url = $main_image['full_url'];
            $main_text = rwmb_meta( 'lullebiegga_main_text', 'type=text');
            $main_button_text = rwmb_meta( 'lullebiegga_main_button_text', 'type=text');
            $main_button_link = rwmb_meta( 'lullebiegga_main_button_link', 'type=text');
    
            $sec1_image = reset(rwmb_meta( 'lullebiegga_sec1_image', 'type=image_advanced'));
            $sec1_image_url = $sec1_image['full_url'];
            $sec1_link = rwmb_meta( 'lullebiegga_sec1_link', 'type=text');
            $sec2_image = reset(rwmb_meta( 'lullebiegga_sec2_image', 'type=image_advanced'));
            $sec2_image_url = $sec2_image['full_url'];
            $sec2_link = rwmb_meta( 'lullebiegga_sec2_link', 'type=text');
    
            echo '<div class="wrap">';
    
            echo '<img src="' . $main_image_url .'">';
            echo '<h1>' . $main_text . '</h1>';
            echo '<a href="' . $main_button_link .'" class="button">' . $main_button_text .'</a>';
    
            echo '<a href="' . $sec1_link .'"><img src="' . $sec1_image_url .'"></a>';
            echo '<a href="' . $sec2_link .'"><img src="' . $sec2_image_url .'"></a>';
    
            echo '</div>';
        }
    }
    add_action( 'woo_main_before', 'home_page_hero');

    I also posted this as an issue on Gihub, where rilwis also asked me for the code so he is also aware of the issue, but hasn’t written me back yet.

    As I’m on a deadline I went on and removed the Meta Box code and added the functionality I needed using customizer, so might not be able to test it further. However as I’ve used Meta Box in almost every project I’ve done it sure would be beneficial to know if the issue can be solved.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Data not displaying in front end when WooCommerce is enabled’ is closed to new replies.