public static function media_fields($form_fields, $attachment) { if (!isset($_GET['post_id'])) { return $form_fields; } $product_id = $_GET['post_id']; if (!$attachment->post_parent) { return $form_fields; } $parent = get_post($attachment->post_parent); if ($parent->post_type !== 'wpsc-product') { return $form_fields; } $product_id = $parent->ID; if (isset($_GET['tab']) && $_GET['tab'] == 'gallery' && get_post_type($product_id) == 'wpsc-product' && class_exists('wpsc_variations') && wp_attachment_is_image($attachment->ID)) { global $wpsc_variations; $wpsc_variations = new wpsc_variations($product_id); if (wpsc_have_variation_groups()) { $form_fields['start_variation'] = array('label' => __('Variations', 'wpsc_dgallery'), 'input' => 'html', 'html' => '<style>.start_variation {border-width:2px 2px 0} .end_variation {border-width:0 2px 2px} .start_variation, .end_variation {border-style:solid ;border-color:#E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px; border-radius: 10px;position:relative;}</style>', 'value' => '', 'helps' => __('Upgrade to the PRO version to use this feature.', 'wpsc_dgallery')); while (wpsc_have_variation_groups()) { wpsc_the_variation_group(); $html = "<style>.in_variations_" . wpsc_vargrp_id() . " {border-width:0 2px;border-style:solid ;border-color:#E6DB55;}</style>"; $html .= "<input disabled='disabled' type='checkbox' id='" . $attachment->ID . "_" . wpsc_vargrp_id() . "' name='" . $attachment->ID . "_" . wpsc_vargrp_id() . "' value=''> <label for='" . $attachment->ID . "_" . wpsc_vargrp_id() . "'><strong>" . __('Apply to All', 'wpsc_dgallery') . "</strong></label><br />"; while (wpsc_have_variations()) { wpsc_the_variation(); if (wpsc_the_variation_id() > 0) { $html .= " - <input disabled='disabled' type='checkbox' id='" . $attachment->ID . "_" . wpsc_vargrp_id() . "_" . wpsc_the_variation_id() . "'> <label for='" . $attachment->ID . "_" . wpsc_vargrp_id() . "_" . wpsc_the_variation_id() . "'>" . esc_html(wpsc_the_variation_name()) . "</label><br />"; } } $form_fields['in_variations_' . wpsc_vargrp_id()] = array('label' => esc_html(wpsc_the_vargrp_name()), 'input' => 'html', 'html' => $html, 'value' => ''); } $form_fields['end_variation'] = array('label' => '', 'input' => 'html', 'html' => ' ', 'value' => ''); } } return $form_fields; }
"><?php echo wpsc_the_vargrp_name(); ?> :</label> <?php /** the variation HTML and loop */ ?> <select class='wpsc_select_variation' name="variation[<?php echo wpsc_vargrp_id(); ?> ]" id="<?php echo wpsc_vargrp_form_id(); ?> "> <?php while (wpsc_have_variations()) { wpsc_the_variation(); ?> <option value="<?php echo wpsc_the_variation_id(); ?> " <?php echo wpsc_the_variation_out_of_stock(); ?> ><?php echo wpsc_the_variation_name(); ?> </option> <?php } ?>
<td width="20%"> <?php if(wpsc_product_external_link(wpsc_the_product_id()) != '') : ?> <?php $action = wpsc_product_external_link(wpsc_the_product_id()); ?> <?php else: ?> <?php $action = wpsc_this_page_url(); ?> <?php endif; ?> <form class='product_form' enctype="multipart/form-data" action="<?php echo $action; ?>" method="post" name="product_<?php echo wpsc_the_product_id(); ?>"> <?php /** the variation group HTML and loop */?> <div class="wpsc_variation_forms"> <?php while (wpsc_have_variation_groups()) : wpsc_the_variation_group(); ?> <p> <label for="<?php echo wpsc_vargrp_form_id(); ?>"><?php echo wpsc_the_vargrp_name(); ?>:</label> <?php /** the variation HTML and loop */?> <select class='wpsc_select_variation' name="variation[<?php echo wpsc_vargrp_id(); ?>]" id="<?php echo wpsc_vargrp_form_id(); ?>"> <?php while (wpsc_have_variations()) : wpsc_the_variation(); ?> <option value="<?php echo wpsc_the_variation_id(); ?>"><?php echo wpsc_the_variation_name(); ?></option> <?php endwhile; ?> </select> </p> <?php endwhile; ?> </div> <?php /** the variation group HTML and loop ends here */?> <?php if(wpsc_has_multi_adding()): ?> <label class='wpsc_quantity_update' for='wpsc_quantity_update[<?php echo wpsc_the_product_id(); ?>]'><?php echo __('Quantity', 'wpsc'); ?>:</label> + <input type="text" id='wpsc_quantity_update[<?php echo wpsc_the_product_id(); ?>]' name="wpsc_quantity_update" size="2" value="1"/>
/** * wpsc product on special function * @return boolean - true if the product is on special, otherwise false */ function wpsc_product_on_special() { global $wpsc_query, $wpdb; $price = get_product_meta(get_the_ID(), 'price', true); // don't rely on product sales price if it has variations if (wpsc_have_variations()) { $sql = $wpdb->prepare("\n\t\t\tSELECT MIN(pm.meta_value)\n\t\t\tFROM {$wpdb->posts} AS p\n\t\t\tINNER JOIN {$wpdb->postmeta} AS pm ON pm.post_id = p.id AND pm.meta_key = '_wpsc_special_price' AND pm.meta_value != '0' AND pm.meta_value != ''\n\t\t\tINNER JOIN {$wpdb->postmeta} AS pm2 ON pm2.post_id = p.id AND pm2.meta_key = '_wpsc_stock' AND pm2.meta_value != '0'\n\t\t\tWHERE\n\t\t\t\tp.post_type = 'wpsc-product'\n\t\t\t\tAND\n\t\t\t\tp.post_parent = %d\n\t\t\tORDER BY CAST(pm.meta_value AS DECIMAL(10, 2)) ASC\n\t\t\tLIMIT 1\n\t\t", get_the_id()); $special_price = (int) $wpdb->get_var($sql); } else { $special_price = get_product_meta(get_the_ID(), 'special_price', true); } if ($special_price > 0 && $price - $special_price > 0) { return true; } else { return false; } }
function wpsc_add_to_cart_button($product_id, $return = false) { global $wpdb, $wpsc_variations; $output = ''; if ($product_id > 0) { // grab the variation form fields here $wpsc_variations = new wpsc_variations($product_id); if ($return) { ob_start(); } ?> <div class='wpsc-add-to-cart-button'> <form class='wpsc-add-to-cart-button-form' id='product_<?php echo esc_attr($product_id); ?> ' action='' method='post'> <?php do_action('wpsc_add_to_cart_button_form_begin'); ?> <div class='wpsc_variation_forms'> <?php while (wpsc_have_variation_groups()) { wpsc_the_variation_group(); ?> <p> <label for='<?php echo wpsc_vargrp_form_id(); ?> '><?php echo esc_html(wpsc_the_vargrp_name()); ?> :</label> <select class='wpsc_select_variation' name='variation[<?php echo wpsc_vargrp_id(); ?> ]' id='<?php echo wpsc_vargrp_form_id(); ?> '> <?php while (wpsc_have_variations()) { wpsc_the_variation(); ?> <option value='<?php echo wpsc_the_variation_id(); ?> ' <?php echo wpsc_the_variation_out_of_stock(); ?> ><?php echo esc_html(wpsc_the_variation_name()); ?> </option> <?php } ?> </select> </p> <?php } ?> </div> <input type='hidden' name='wpsc_ajax_action' value='add_to_cart' /> <input type='hidden' name='product_id' value='<?php echo $product_id; ?> ' /> <input type='submit' id='product_<?php echo $product_id; ?> _submit_button' class='wpsc_buy_button' name='Buy' value='<?php echo __('Add To Cart', 'wpsc'); ?> ' /> <?php do_action('wpsc_add_to_cart_button_form_end'); ?> </form> </div> <?php if ($return) { return ob_get_clean(); } } }
function wpsc_add_to_cart_button($product_id, $replaced_shortcode = false) { global $wpdb, $wpsc_variations; if ($product_id > 0) { // grab the variation form fields here $wpsc_variations = new wpsc_variations($product_id); $output .= "<form onsubmit='submitform(this);return false;' action='' method='post'>"; /** the variation group HTML and loop */ $output .= "<div class='wpsc_variation_forms'>"; while (wpsc_have_variation_groups()) { wpsc_the_variation_group(); $output .= "<p>"; $output .= "<label for='" . wpsc_vargrp_form_id() . "'>" . wpsc_the_vargrp_name() . ":</label>"; /** the variation HTML and loop */ $output .= "<select class='wpsc_select_variation' name='variation[" . wpsc_vargrp_id() . "]' id='" . wpsc_vargrp_form_id() . "'>"; while (wpsc_have_variations()) { wpsc_the_variation(); $output .= "<option value='" . wpsc_the_variation_id() . "' " . wpsc_the_variation_out_of_stock() . ">" . wpsc_the_variation_name() . "</option>"; } $output .= "</select> "; $output .= "</p>"; } $output .= "</div>"; /** the variation group HTML and loop ends here */ $output .= "<input type='hidden' name='wpsc_ajax_action' value='add_to_cart' />"; $output .= "<input type='hidden' name='product_id' value='" . $product_id . "' />"; $output .= "<input type='hidden' name='item' value='" . $product_id . "' />"; if (isset($wpsc_theme) && is_array($wpsc_theme) && $wpsc_theme['html'] != '') { $output .= $wpsc_theme['html']; } else { $output .= "<input type='submit' id='product_" . $product['id'] . "_submit_button' class='wpsc_buy_button' name='Buy' value='" . __('Add To Cart', 'wpsc') . "' />"; } $output .= '</form>'; if ($replaced_shortcode == true) { return $output; } else { echo $output; } } }
/** * Product Specials Widget content function * * Displays the latest products. * * @todo Remove marketplace theme specific code and maybe replce with a filter for the image output? (not required if themeable as above) * * Changes made in 3.8 that may affect users: * * 1. The product title link text does now not have a bold tag, it should be styled via css. * 2. <br /> tags have been ommitted. Padding and margins should be applied via css. * 3. Each product is enclosed in a <div> with a 'wpec-special-product' class. * 4. The product list is enclosed in a <div> with a 'wpec-special-products' class. * 5. Function now expect a single paramter with an array of options (used to be a string which prepended the output). */ function wpsc_specials($args = null, $instance) { global $wpdb; $args = wp_parse_args((array) $args, array('number' => 5)); $siteurl = get_option('siteurl'); if (!($number = (int) $instance['number'])) { $number = 5; } $show_thumbnails = isset($instance['show_thumbnails']) ? (bool) $instance['show_thumbnails'] : FALSE; $show_description = isset($instance['show_description']) ? (bool) $instance['show_description'] : FALSE; $excludes = wpsc_specials_excludes(); $args = array('post_type' => 'wpsc-product', 'caller_get_posts' => 1, 'post_status' => 'publish', 'post_parent' => 0, 'post__not_in' => $excludes, 'posts_per_page' => $number); $special_products = query_posts($args); $output = ''; $product_ids[] = array(); if (count($special_products) > 0) { list($wp_query, $special_products) = array($special_products, $wp_query); // swap the wpsc_query object while (wpsc_have_products()) { wpsc_the_product(); if (!in_array(wpsc_the_product_id(), $product_ids)) { $product_ids[] = wpsc_the_product_id(); if ($show_thumbnails) { if (wpsc_the_product_thumbnail()) { ?> <a rel="<?php echo str_replace(array(" ", '"', "'", '"', '''), array("_", "", "", "", ''), wpsc_the_product_title()); ?> " href="<?php echo wpsc_the_product_permalink(); ?> "> <img class="product_image" id="product_image_<?php echo wpsc_the_product_id(); ?> " alt="<?php echo wpsc_the_product_title(); ?> " title="<?php echo wpsc_the_product_title(); ?> " src="<?php echo wpsc_the_product_thumbnail(); ?> "/> </a> <?php } else { ?> <a href="<?php echo wpsc_the_product_permalink(); ?> "> <img class="no-image" id="product_image_<?php echo wpsc_the_product_id(); ?> " alt="No Image" title="<?php echo wpsc_the_product_title(); ?> " src="<?php echo WPSC_URL; ?> /wpsc-theme/wpsc-images/noimage.png" width="<?php esc_attr_e(get_option('product_image_width')); ?> " height="<?php esc_attr_e(get_option('product_image_height')); ?> " /> </a> <?php } ?> <?php } // close show thumbnails ?> <br /> <span id="special_product_price_<?php echo wpsc_the_product_id(); ?> "> <!-- price display --> <?php if (wpsc_have_variation_groups()) { while (wpsc_have_variation_groups()) { wpsc_the_variation_group(); ?> <?php /** the variation HTML and loop */ ?> <?php $variation_outputs = array(); ?> <?php while (wpsc_have_variations()) { wpsc_the_variation(); ?> <?php $variation_outputs[] = ''; $variation_prices[] = wpsc_the_variation_price(true); } // Sort the variations into price order before outputting $data[] = $variation_outputs; $data[] = $variation_prices; array_multisort($data[1], SORT_ASC, SORT_NUMERIC, $data[0], SORT_ASC, SORT_STRING); ?> <?php } echo __('From', 'wpsc') . ' : ' . wpsc_currency_display($data[1][0]); ?> <?php } else { ?> <?php echo wpsc_currency_display(wpsc_calculate_price(wpsc_the_product_id(), null, true)); ?> <?php } ?> </span><br /> <strong><a class="wpsc_product_title" href="<?php echo wpsc_product_url(wpsc_the_product_id(), false); ?> "><?php echo wpsc_the_product_title(); ?> </a></strong><br /> <?php if ($show_description) { ?> <div class="wpsc-special-description"> <?php echo wpsc_the_product_description(); ?> </div> <?php } // close show description ?> <?php } } list($wp_query, $special_products) = array($special_products, $wp_query); // swap the wpsc_query object wp_reset_query(); } }