$name, 'available' => $available, ); if (!tinv_get_option('integrations', $slug)) { return; } if (!$available) { return; } if (!function_exists('tinv_wishlist_meta_support_ivpa')) { /** * Set description for meta Improved Product Options for WooCommerce * * @param array $meta Meta array. * * @return array */ function tinv_wishlist_meta_support_ivpa($meta) { global $product; if (class_exists('XforWC_Improved_Options')) { $curr_customizations = XforWC_Improved_Options_Frontend::get_settings(); foreach ($meta as $k => $v) { $prefix = 'ivpac_'; $k_ivpac = (0 === strpos($k, $prefix)) ? substr($k, strlen($prefix)) : $k; $prefix = 'attribute_'; $k_ivpac = (0 === strpos($k, $prefix)) ? substr($k, strlen($prefix)) : $k_ivpac; $local_attribute = (0 === strpos($k, $prefix)) ? true : false; $v = is_array($v['display']) ? implode(', ', $v['display']) : $v['display']; if (isset($curr_customizations['ivpa_attr'][$k_ivpac])) { if ($curr_customizations['ivpa_attr'][$k_ivpac] == 'ivpa_custom') { $meta[$k] = array( 'key' => $curr_customizations['ivpa_title'][$k_ivpac], 'display' => $v, ); } } if (in_array($k_ivpac, $curr_customizations['ivpa_attr'])) { $attributes = $product->get_attributes(); $attribute = sanitize_title($k_ivpac); $term_slug = ''; if (isset($attributes[$attribute])) { $term_slug = $attributes[$attribute]; } elseif (isset($attributes['pa_' . $attribute])) { $term_slug = $attributes['pa_' . $attribute]; } if ($product->is_type('variation') && $term_slug === $v) { unset($meta[$k]); } else { $meta[$k] = array( 'key' => wc_attribute_label($k_ivpac), 'display' => $v, ); } } elseif (wc_attribute_label($k_ivpac) && $local_attribute) { $meta[$k] = array( 'key' => wc_attribute_label($k_ivpac), 'display' => $v, ); } } } return $meta; } add_filter('tinvwl_wishlist_item_meta_post', 'tinv_wishlist_meta_support_ivpa'); } // End if(). function tinv_add_to_wishlist_ivpa() { if (class_exists('XforWC_Improved_Options')) { wp_add_inline_script('tinvwl', " jQuery(document).ready(function($){ $(document).on('tinvwl_wishlist_button_clicked', function (e, el, data) { if (typeof ivpa === 'undefined' || !ivpa) { return false; } var button = $(el); var container = button.closest(ivpa.settings.archive_selector); var find = button.closest('.summary').length > 0 ? '#ivpa-content' : '.ivpa-content'; if ( container.find(find).length > 0 ) { var var_id = container.find(find).attr('data-selected'); if ( typeof var_id == 'undefined' || var_id == '' ) { var_id = container.find('[name=\"variation_id\"]').val(); } if ( typeof var_id == 'undefined' || var_id == '' ) { var_id = container.find(find).attr('data-id'); } var item = {}; container.find(find+' .ivpa_attribute').each( function() { var attribute = $(this).attr('data-attribute'); var attribute_value = $(this).find('.ivpa_term.ivpa_clicked').attr('data-term'); data.form['attribute_' + attribute] = attribute_value; }); var ivpac = container.find(find+' .ivpa_custom_option').length>0 ? container.find(find+' .ivpa_custom_option [name^=\"ivpac_\"]').serialize() : ''; var ivpac_fields = container.find(find + ' .ivpa_custom_option').length > 0 ? container.find(find + ' .ivpa_custom_option [name^=\"ivpac_\"]') : ''; if(ivpac_fields){ ivpac_fields.each(function () { var name = $(this).attr('name').replace(/\[.*\]/g, ''); if ($(this).is(':checkbox')) { if (!$(this).is(':checked')) return true; if (data.form.hasOwnProperty(name) && data.form[name].length) { data.form[name] = (data.form[name] + ', ' + $(this).val()).replace(/^, /, ''); } else { data.form[name] = $(this).val(); } } else { data.form[name] = $(this).val(); } }); } data.form.variation_id = var_id; data.product_variation = var_id; data.ivpac = ivpac; } }); }); "); } } add_action('wp_enqueue_scripts', 'tinv_add_to_wishlist_ivpa', 100, 1);