I'm evaluating using this plugin on a WooCommerce site I'm building.
Woo already has built-in support for adding images to it's product_cat taxonomy. And I want to add images to Woo's product_tag taxonomy...and that works fine.
However, there's a conflict with WP_Term_Meta_UI::term_clauses() and the way Woo alters what is returned by get_terms().
Woo provides a drag-and-drop UI on the edit screen for the product_cat taxonomy that allows a user to specify a sort order for the terms in that tax on the front end. It stores that order order as term meta. By default, it orders to terms in the terms list table by that sort order...as such it adds 'orderby' => 'meta_value_num' (thru some filter, I forget which at the moment).
Unfortunately, when WP_Term_Meta_UI::term_clauses() sees 'orderby' => 'meta_value_num' it joins to the term meta table and alters the where clause such that only terms with the image meta key are return. This results in 0 terms being found, even tho the list table realizes there are terms in the taxonomy as evidenced by the highlighted numbers in this screenshot.

[Note: the Image column in that screenshot is Woo's built-in column, and not the one added by this plugin. I have hooked into wp_term_image_get_taxonomies and restricted the taxonomies this plugin adds the Image column on to Woo's product_tag tax.]
As a workaround I tried to unhook WP_Term_Meta_UI::term_clauses() and WP_Term_Meta_UI::get_terms_orderby() from terms_clauses and get_terms_orderby respectively since I don't want the Image column to be sortable anyway. I'm hooking into manage_edit-product_tag_sortable_columns to remove the Image column this plugin adds from the sortable columns (to match the fact that Woo's built-in Image column for the product_cat taxonomy isn't sortable). However, since there is no global variable for that object I can't do that.
I bet Woo isn't the only thing that will conflict with allowing 'orderby' => 'meta_value_num' to cause the join/where modifications that WP_Term_Meta_UI::term_clauses() does.
Knowing you, I'm sure there's a good reason for having meta_value_num in $allowed_keys even tho this plugin doesn't ever key that as an orderby, but for the life of me I can't figure out why :-) This plugin seems to work just fine if I remove meta_value_num from $allowed_keys.
I'm evaluating using this plugin on a WooCommerce site I'm building.
Woo already has built-in support for adding images to it's
product_cattaxonomy. And I want to add images to Woo'sproduct_tagtaxonomy...and that works fine.However, there's a conflict with
WP_Term_Meta_UI::term_clauses()and the way Woo alters what is returned byget_terms().Woo provides a drag-and-drop UI on the edit screen for the
product_cattaxonomy that allows a user to specify a sort order for the terms in that tax on the front end. It stores that order order as term meta. By default, it orders to terms in the terms list table by that sort order...as such it adds'orderby' => 'meta_value_num'(thru some filter, I forget which at the moment).Unfortunately, when
WP_Term_Meta_UI::term_clauses()sees'orderby' => 'meta_value_num'it joins to the term meta table and alters thewhereclause such that only terms with theimagemeta key are return. This results in 0 terms being found, even tho the list table realizes there are terms in the taxonomy as evidenced by the highlighted numbers in this screenshot.[Note: the Image column in that screenshot is Woo's built-in column, and not the one added by this plugin. I have hooked into
wp_term_image_get_taxonomiesand restricted the taxonomies this plugin adds the Image column on to Woo'sproduct_tagtax.]As a workaround I tried to unhook
WP_Term_Meta_UI::term_clauses()andWP_Term_Meta_UI::get_terms_orderby()fromterms_clausesandget_terms_orderbyrespectively since I don't want the Image column to be sortable anyway. I'm hooking intomanage_edit-product_tag_sortable_columnsto remove the Image column this plugin adds from the sortable columns (to match the fact that Woo's built-in Image column for theproduct_cattaxonomy isn't sortable). However, since there is no global variable for that object I can't do that.I bet Woo isn't the only thing that will conflict with allowing
'orderby' => 'meta_value_num'to cause the join/where modifications thatWP_Term_Meta_UI::term_clauses()does.Knowing you, I'm sure there's a good reason for having
meta_value_numin$allowed_keyseven tho this plugin doesn't ever key that as an orderby, but for the life of me I can't figure out why :-) This plugin seems to work just fine if I removemeta_value_numfrom$allowed_keys.