Support » Plugin: CMB2 » Term meta is saved but it doesn't appear in term edit screen later

  • Resolved Tauno Hanni

    (@taunoh)


    I’ve run into a problem where the metadata is stored but It doesn’t appear in term edit screen later.

    $oi_catalog = new_cmb2_box( array(
                'id' => $prefix . 'catalog_metabox',
                'title' => esc_attr__('Catalog settings'),
                'object_types' => array('term'),
                'taxonomies' => array('product_category'),
                'context' => 'normal',
                'priority' => 'high',
                'show_names' => true
            )
        );
    
        $oi_catalog_group_id = $oi_catalog->add_field( array(
                'id'          => '_cmb_catalog_repeat_group',
                'type'        => 'group',
                'options'     => array(
                    'group_title'   => __( 'Banner {#}'),
                    'add_button'    => __( 'Add banner'),
                    'remove_button' => __( 'Remove banner'),
                    'closed'    => false,
                    'sortable' => false
                )
            )
        );
    
        $oi_catalog->add_group_field($oi_catalog_group_id, array(
                'name' => 'URL',
                'id'   => 'url',
                'type' => 'text_url'
            )
        );

    Am I missing something? I’m running WP 4.5.3, CMB2 2.2.2.1

    https://wordpress.org/plugins/cmb2/

Viewing 8 replies - 16 through 23 (of 23 total)
  • Plugin Author Michael Beckwith

    (@tw2113)

    The BenchPresser

    Noted

    Plugin Author Justin Sternberg

    (@jtsternberg)

    Generally speaking, it’s never a good idea to edit core files (WordPress, plugins, etc), but is especially true with CMB2, as it could be in use by other plugins or themes which have their own version included as a lib, and your fix could either break their implementation OR their version override your fix. Since CMB2 does the work of determining which CMB2 lib to load (if multiple are found), there is no guarantee that your version will be the canonical version.

    All that being said, if Michael manages to be able to replicate the issue, then we can proceed with a bug fix. Sounds like we haven’t gotten the complete story to be able to replicate yet.

    Just want to chime in and say we are experiencing this issue as well, we’re quite convinced it’s a bug. We’re going to submit a pull request on github. We don’t think the field’s object type should be defaulting to ‘post’, CMB2::get_object_type() should let CMB2::current_object_type() should run once and figure out the correct object type.

    Also experiencing the same problem with term meta:

    • Repeating group content doesn’t show after saving term page
    • Other CMB2 meta fields on the term page save correctly

    Code snippet:

    		$adverts_box = new_cmb2_box( array(
    			'id' => $prefix . 'graphic_adverts',
    			'object_types'     => array( 'term' ),
    			'taxonomies'       => array( 'nnn_product_category' )
    		));
    
    		$banner_advert_id = $adverts_box->add_field( array(
    			'id'   => $prefix . 'graphic_advert',
    			'description' => __( 'Used as default adverts for products in this category', 'nnn-products' ),
    			'type' => 'group',
    			'options' => array(
    				'group_title' => __( 'Advert {#}', 'nnn-products' ),
    				'add_button'    => __( 'Add Another Advert', 'nnn-products' ),
    				'remove_button' => __( 'Remove Advert', 'nnn-products' ),
    				'sortable'      => true,
    			)
    		) );
    
    		$adverts_box->add_group_field( $banner_advert_id, array(
    			'name' => __( 'Banner', 'nnn-products' ),
    			'id'   => 'banner',
    			'type' => 'file'
    		));
    
    		$adverts_box->add_group_field( $banner_advert_id, array(
    			'name' => __( 'Link', 'nnn-products' ),
    			'id'   => 'link',
    			'type' => 'text_url'
    		));
    • This reply was modified 3 years, 3 months ago by Roger Coathup.
    • This reply was modified 3 years, 3 months ago by Roger Coathup. Reason: Formatting
    Plugin Author Justin Sternberg

    (@jtsternberg)

    I am not able to duplicate this issue, even using your example code (and no other cmb2 boxes instantiated). It seems there is likely something environment-specific here.

    Plugin Author Michael Beckwith

    (@tw2113)

    The BenchPresser

    Copy/pasted Roger’s snippet above, changed taxonomy to one I had ready.

    Fill in fields for new term, add image, add link, click “add new term”.
    Click to edit newly created term, metaboxes are filled in, like expected.

    Create new term, don’t fill in CMB2 fields, click “add new term”.
    Click to edit newly created term, metaboxes are empty, like expected.
    Fill in fields, hit save, page refreshes and data still in metaboxes.

    Long story shorter, I’m not managing to recreate as well yet. Would love to be able to so we can track down this edge case.

    Plugin Author Michael Beckwith

    (@tw2113)

    The BenchPresser

    That said, I did manage to find an issue with the term ajax saving and the image preview, so that part got filed.

    Plugin Author Michael Beckwith

    (@tw2113)

    The BenchPresser

    Marking resolved at this point, until we can possibly re-create the issue.

Viewing 8 replies - 16 through 23 (of 23 total)
  • The topic ‘Term meta is saved but it doesn't appear in term edit screen later’ is closed to new replies.