function foxyshop_product_shortcode($atts, $content = null) { global $product; $original_product = $product; extract(shortcode_atts(array("name" => '', "sub_frequency" => '', "variations" => ''), $atts)); $prod = foxyshop_get_product_by_name($name); if (!$prod || !$name) { return; } if ($content == "") { $content = "Add To Cart"; } $product = foxyshop_setup_product($prod); $url_extra = ""; if ($sub_frequency) { $url_extra .= "&sub_frequency=" . $sub_frequency . foxyshop_get_verification("sub_frequency", $sub_frequency); } $write = '<a href="' . foxyshop_product_link("", true, $variations) . $url_extra . '" class="foxyshop_sc_product_link">' . $content . '</a>'; $product = $original_product; return $write; }
function foxyshop_addon_products($show_qty = false, $before_entry = "", $after_entry = '<div class="clr"></div>') { global $foxyshop_settings, $product, $foxyshop_skip_url_link; if (!$foxyshop_settings['enable_addon_products'] || !$product['addon_products']) { return; } $original_product = $product; echo '<div class="foxyshop_addon_container">' . "\n"; $args = array('post_type' => 'foxyshop_product', "post__in" => explode(",", $product['addon_products']), 'posts_per_page' => -1); if ($addonorder_order = get_post_meta($original_product['id'], "_addon_order", 1)) { add_filter('posts_orderby', 'foxyshop_addon_order'); } $addonproducts = new WP_Query($args); if (!$product['bundled_products']) { $num = 2; } else { $bundled_products = explode(",", $product['bundled_products']); $num = count($bundled_products) + 2; } while ($addonproducts->have_posts()) { $addonproducts->the_post(); //Setup $product = foxyshop_setup_product(); //Check Inventory Levels if (isset($product['inventory_levels'][$product['code']]['count'])) { if ($product['inventory_levels'][$product['code']]['count'] <= 0) { continue; } } $fields = array('name', 'price', 'code', 'category', 'weight', 'discount_quantity_amount', 'discount_quantity_percentage', 'discount_price_amount', 'discount_price_percentage', 'sub_frequency', 'sub_startdate', 'sub_enddate'); foreach ($fields as $fieldname) { if ($product[$fieldname]) { echo '<input type="hidden" class="foxyshop_addon_fields" rel="' . $num . '" originalname="' . $fieldname . foxyshop_get_verification($fieldname) . '" name="x:' . $fieldname . foxyshop_get_verification($fieldname) . '" id="' . $num . ':' . $fieldname . '_' . $product['id'] . '" value="' . esc_attr($product[$fieldname]) . '" />' . "\n"; } } if (foxyshop_get_main_image() && version_compare($foxyshop_settings['version'], '0.7.0', ">")) { echo '<input type="hidden" class="foxyshop_addon_fields" rel="' . $num . '" originalname="image' . foxyshop_get_verification('image', '--OPEN--') . '" name="x:image' . foxyshop_get_verification('image', '--OPEN--') . '" id="' . $num . ':image_' . $product['id'] . '" value="' . foxyshop_get_main_image() . '" />' . "\n"; } if (version_compare($foxyshop_settings['version'], '0.7.0', ">") && !isset($foxyshop_skip_url_link)) { echo '<input type="hidden" class="foxyshop_addon_fields" rel="' . $num . '" originalname="url' . foxyshop_get_verification('url') . '" name="x:url' . foxyshop_get_verification('url') . '" id="' . $num . ':url_' . $product['id'] . '" value="' . $product['url'] . '" />' . "\n"; } //Output echo $before_entry; echo '<input type="checkbox" name="x:addon_' . $num . '" id="addon_' . $num . '" rel="' . $num . '" class="foxyshop_addon_checkbox" />'; echo '<label for="addon_' . $num . '" class="addon_main_label">' . $product['name'] . '</label>'; echo '<input type="hidden" name="x:addon_price_' . $num . '" id="addon_price_' . $num . '" value="' . $product['price'] . '" />'; foxyshop_price(0, 1); if ($show_qty) { echo foxyshop_quantity(apply_filters("foxyshop_default_quantity_value", 1), "", "", $num); } echo $after_entry; $num++; } wp_reset_query(); echo '</div>' . "\n"; $product = $original_product; ?> <script type="text/javascript"> function foxyshop_addon_enable(rel) { if ($("#addon_" + rel).is(":checked")) { jQuery(".foxyshop_addon_fields[rel='" + rel + "']").each(function() { jQuery(this).attr("name", rel + ":" + jQuery(this).attr("originalname")); }); jQuery(".foxyshop_quantity.foxyshop_addon_fields[rel=" + rel + "]").prop("disabled", false); } else { jQuery(".foxyshop_addon_fields[rel='" + rel + "']").each(function() { jQuery(this).attr("name", "x:" + jQuery(this).attr("originalname")) }); jQuery(".foxyshop_quantity.foxyshop_addon_fields[rel=" + rel + "]").prop("disabled", true); } } jQuery(document).ready(function($){ $(".foxyshop_addon_checkbox").click(function() { foxyshop_addon_enable($(this).attr("rel")); }); $("input.foxyshop_quantity.foxyshop_addon_fields").keyup(function() { $(this).val($(this).val().replace(/\D/g,'')); $(".foxyshop_addon_checkbox").trigger("change"); }); }); </script> <?php remove_filter('posts_orderby', 'foxyshop_addon_order'); }