/** * form shortcode of variation fields for product * * Note : those will be different for rods and lures so we create an overwrite ot the template */ function pierry_show_variation_attributes() { global $post; $_pf = new WC_Product_Factory(); $product = $_pf->get_product($post->ID); $field_desc = pierry_variation_fields_get_available_fields(); $fields = pierry_variation_fields_get($post->ID); $attributes = $attributes = $product->get_attributes(); $categories = majorcraft_get_all_categories($post->ID); //if(in_array('lures', $categories)) { $variation_attributes = array('columns' => 2, 'fields' => array('is_in_stock' => 'Status')); foreach ($attributes as $attribute) { if ($attribute['is_visible']) { $variation_attributes['fields']['attribute_' . $attribute['name']] = wc_attribute_label($attribute['name']); } } foreach ($fields as $slug => $f) { $intersection = array_intersect(array_keys($categories), array_values($field_desc[$slug]->cats)); if (!empty($intersection)) { $variation_attributes['fields'][$slug] = $field_desc[$slug]->name; } } /*} else if(in_array('rods', $categories)) { }*/ $i = 0; $shortcode = '[pierry_variation_attrbutes columns="' . $variation_attributes['columns'] . '"'; if (!empty($variation_attributes['fields']) && is_array($variation_attributes['fields'])) { $shortcode .= ' fields="'; foreach ($variation_attributes['fields'] as $slug => $name) { if ($i > 0) { $shortcode .= ';'; } $shortcode .= $slug . '=>' . $name . ":"; $i++; } } $shortcode .= '"]'; echo do_shortcode($shortcode); }
function majorcraft_rods_variation_table() { global $post; global $product; $categories = majorcraft_get_all_categories($post->ID); if (in_array('rods', array_values($categories))) { if (is_product() and $product->product_type == 'variable') { wc_get_template('/single-product/rods_variations_table.php', array('categories' => $categories)); } } }