|
209 | 209 | $product_addons = WC_Product_Addons_Helper::get_product_addons( $product_id ); |
210 | 210 | } |
211 | 211 | } |
| 212 | + // --- handle YITH add-ons: print labels and remove raw ywapo-* meta to avoid duplicates --- |
| 213 | + $yith_addon_meta_map = array(); |
| 214 | + if ( isset( $item_meta_fields['_ywapo_meta_data'] ) && is_array( $item_meta_fields['_ywapo_meta_data'] ) ) { |
| 215 | + foreach ( $item_meta_fields['_ywapo_meta_data'] as $group ) { |
| 216 | + if ( ! is_array( $group ) ) { |
| 217 | + continue; |
| 218 | + } |
| 219 | + foreach ( (array) $group as $maybe ) { |
| 220 | + if ( isset( $maybe['addon_id'] ) ) { |
| 221 | + $option_id = isset( $maybe['option_id'] ) ? $maybe['option_id'] : 0; |
| 222 | + $meta_key = 'ywapo-addon-' . $maybe['addon_id'] . '-' . $option_id; |
| 223 | + $yith_addon_meta_map[ $meta_key ] = $maybe; |
| 224 | + } else { |
| 225 | + foreach ( (array) $maybe as $sub ) { |
| 226 | + if ( isset( $sub['addon_id'] ) ) { |
| 227 | + $option_id = isset( $sub['option_id'] ) ? $sub['option_id'] : 0; |
| 228 | + $meta_key = 'ywapo-addon-' . $sub['addon_id'] . '-' . $option_id; |
| 229 | + $yith_addon_meta_map[ $meta_key ] = $sub; |
| 230 | + } |
| 231 | + } |
| 232 | + } |
| 233 | + } |
| 234 | + } |
| 235 | + foreach ( $yith_addon_meta_map as $meta_key => $addon ) { |
| 236 | + if ( isset( $addon['display_label'] ) && isset( $addon['display_value'] ) ) { |
| 237 | + echo '<br><strong>' . esc_html( $addon['display_label'] ) . ' : </strong>' . wp_kses_post( $addon['display_value'] ); |
| 238 | + } else { |
| 239 | + if ( isset( $item_meta_fields[ $meta_key ] ) ) { |
| 240 | + echo '<br><strong>' . esc_html( $meta_key ) . ' : </strong>' . wp_kses_post( $item_meta_fields[ $meta_key ] ); |
| 241 | + } |
| 242 | + } |
| 243 | + if ( isset( $item_meta_fields[ $meta_key ] ) ) { |
| 244 | + unset( $item_meta_fields[ $meta_key ] ); |
| 245 | + } |
| 246 | + } |
| 247 | + } // --- end handle YITH add-ons --- |
212 | 248 | if ( version_compare( get_option( 'woocommerce_version' ), '3.0.0', '>=' ) ) { |
213 | 249 | if ( isset( $item['variation_id'] ) && 0 !== $item['variation_id'] ) { |
214 | 250 | $variation = wc_get_product( $item['product_id'] ); |
|
0 commit comments