Ejemplo n.º 1
0
function shortcode_custom_add_to_cart($atts, $content = null)
{
    global $wpdb, $post;
    if (empty($atts)) {
        return '';
    }
    extract(shortcode_atts(array('id' => '', 'quantity' => '1', 'sku' => '', 'show_price' => 'true', 'size' => '', 'style' => '', 'align' => '', 'text_color' => '', 'bg_color' => ''), $atts));
    if (!empty($id)) {
        $product_data = get_post($id);
    } elseif (!empty($sku)) {
        $product_id = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku));
        $product_data = get_post($product_id);
    } else {
        return '';
    }
    $product = wc_setup_product_data($product_data);
    if (!$product) {
        return '';
    }
    ob_start();
    $class = "vc_btn " . $size . ' ' . $style;
    ?>
 
    
    <p class="product woocommerce add_to_cart_inline" style="text-align:<?php 
    echo $align;
    ?>
">

		<?php 
    if ($show_price == 'true') {
        ?>
            <?php 
        echo $product->get_price_html();
        ?>
        <?php 
    }
    ?>
        <span class="add_to_cart_separator"></span>
        <?php 
    echo apply_filters('woocommerce_loop_add_to_cart_link', sprintf("<a style=\"color: {$text_color}; background-color: {$bg_color};\" href=\"%s\" rel=\"nofollow\" data-product_id=\"%s\" data-product_sku=\"%s\" data-quantity=\"%s\" class=\"{$class} %s product_type_%s\"><span>%s</span></a>", esc_url($product->add_to_cart_url()), esc_attr($product->id), esc_attr($product->get_sku()), esc_attr(isset($quantity) ? $quantity : 1), $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', esc_attr($product->product_type), esc_html($product->add_to_cart_text())), $product);
    ?>

    </p>
	
	<?php 
    wp_reset_query();
    $content = ob_get_contents();
    ob_end_clean();
    wc_setup_product_data($post);
    return $content;
}
Ejemplo n.º 2
0
    /**
     * Display a single product price + cart button
     *
     * @param array $atts
     * @return string
     */
    public static function product_add_to_cart($atts)
    {
        global $wpdb, $post;
        if (empty($atts)) {
            return '';
        }
        $atts = shortcode_atts(array('id' => '', 'class' => '', 'quantity' => '1', 'sku' => '', 'style' => 'border:4px solid #ccc; padding: 12px;', 'show_price' => 'true'), $atts);
        if (!empty($atts['id'])) {
            $product_data = get_post($atts['id']);
        } elseif (!empty($atts['sku'])) {
            $product_id = wc_get_product_id_by_sku($atts['sku']);
            $product_data = get_post($product_id);
        } else {
            return '';
        }
        $product = wc_setup_product_data($product_data);
        if (!$product) {
            return '';
        }
        ob_start();
        ?>
		<p class="product woocommerce add_to_cart_inline <?php 
        echo $atts['class'];
        ?>
" style="<?php 
        echo $atts['style'];
        ?>
">

			<?php 
        if ('true' == $atts['show_price']) {
            ?>
				<?php 
            echo $product->get_price_html();
            ?>
			<?php 
        }
        ?>

			<?php 
        woocommerce_template_loop_add_to_cart(array('quantity' => $atts['quantity']));
        ?>

		</p><?php 
        // Restore Product global in case this is shown inside a product post
        wc_setup_product_data($post);
        return ob_get_clean();
    }
 /**
  * Get the add to cart URL for a product.
  *
  * @param array $atts
  * @return string
  */
 public static function product_add_to_cart_url($atts)
 {
     global $wpdb;
     if (empty($atts)) {
         return '';
     }
     if (isset($atts['id'])) {
         $product_data = get_post($atts['id']);
     } elseif (isset($atts['sku'])) {
         $product_id = wc_get_product_id_by_sku($atts['sku']);
         $product_data = get_post($product_id);
     } else {
         return '';
     }
     $product = is_object($product_data) && in_array($product_data->post_type, array('product', 'product_variation')) ? wc_setup_product_data($product_data) : false;
     if (!$product) {
         return '';
     }
     $_product = wc_get_product($product_data);
     return esc_url($_product->add_to_cart_url());
 }
Ejemplo n.º 4
0
 /**
  * @deprecated 2.1.0
  * @param $post
  * @return WC_Product
  */
 public function setup_product_data($post)
 {
     _deprecated_function('Woocommerce->setup_product_data', '2.1', 'wc_setup_product_data');
     return wc_setup_product_data($post);
 }
 public function wcviews_setup_product_data($post)
 {
     if (function_exists('wc_setup_product_data')) {
         //Using WooCommerce Plugin version 2.1+
         $product_information = wc_setup_product_data($post);
         return $product_information;
     } else {
         //Probably still using older woocommerce versions
         global $woocommerce;
         if (is_object($woocommerce)) {
             $product_information = $woocommerce->setup_product_data($post);
             return $product_information;
         }
     }
 }
Ejemplo n.º 6
0
		<nav class="jcarousel-controls">
			<a class="jcarousel-prev" href="#"></a>
			<a class="jcarousel-next" href="#"></a>
		</nav>

		<div class="jcarousel-wrapper">
			<div class="meals-of-the-day-jcarousel jcarousel off">
				<ul class="products">
					<?php 
    foreach ($meals_slider_result as $slider) {
        ?>
						<?php 
        $slider_post = get_post($slider->product_id);
        $slide_link = get_permalink($slider->product_id);
        if ($slider_post->post_type == 'product') {
            $product = wc_setup_product_data($slider_post);
            $price = $product->get_price_html();
        } else {
            $price = '';
        }
        ?>
						<li class="meal product">
							<div class="img-holder">
								<a href="<?php 
        echo $slide_link;
        ?>
">
								<?php 
        $slide_img = get_post_meta($slider->product_id, '_daymeals-slider-input', true);
        if ($slide_img != '') {
            echo "<img src='{$slide_img}' alt='' />";
 /**
  * Get the add to cart URL for a product.
  *
  * @param array $atts
  * @return string
  */
 public static function product_add_to_cart_url($atts)
 {
     global $wpdb;
     if (empty($atts)) {
         return '';
     }
     if (isset($atts['id'])) {
         $product_data = get_post($atts['id']);
     } elseif (isset($atts['sku'])) {
         $product_id = wc_get_product_id_by_sku($atts['sku']);
         $product_data = get_post($product_id);
     } else {
         return '';
     }
     if (is_object($product_data)) {
         $product = wc_setup_product_data($product_data);
     } else {
         return '';
     }
     if ('product' !== $product_data->post_type) {
         return '';
     }
     $_product = wc_get_product($product_data);
     return esc_url($_product->add_to_cart_url());
 }
    /**
     * Display a single product price + cart button
     *
     * @access public
     * @param array $atts
     * @return string
     */
    public static function product_add_to_cart($atts)
    {
        global $wpdb, $post;
        if (empty($atts)) {
            return '';
        }
        extract(shortcode_atts(array('id' => '', 'sku' => '', 'style' => 'border:4px solid #ccc; padding: 12px;', 'show_price' => 'true'), $atts));
        if (!empty($id)) {
            $product_data = get_post($id);
        } elseif (!empty($sku)) {
            $product_id = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku));
            $product_data = get_post($product_id);
        } else {
            return '';
        }
        $product = wc_setup_product_data($product_data);
        if (!$product) {
            return '';
        }
        ob_start();
        ?>
		<p class="product woocommerce" style="<?php 
        echo $style;
        ?>
">

			<?php 
        if ($show_price == 'true') {
            ?>
				<?php 
            echo $product->get_price_html();
            ?>
			<?php 
        }
        ?>

			<?php 
        woocommerce_template_loop_add_to_cart();
        ?>

		</p><?php 
        // Restore Product global in case this is shown inside a product post
        wc_setup_product_data($post);
        return ob_get_clean();
    }
Ejemplo n.º 9
0
    function wd_best_selling_product_slider_function($atts, $content)
    {
        $_actived = apply_filters('active_plugins', get_option('active_plugins'));
        if (!in_array("woocommerce/woocommerce.php", $_actived)) {
            return;
        }
        global $woocommerce_loop, $woocommerce, $wd_data;
        extract(shortcode_atts(array('columns' => 4, 'row' => 1, 'big_product' => '', 'per_page' => 4, 'cat_slug' => '', 'product_tag' => '', 'title' => '', 'desc' => '', 'show_type' => 'grid', 'show_nav' => 1, 'show_icon_nav' => 0, 'autoplay' => 1, 'show_image' => 1, 'show_title' => 1, 'show_sku' => 0, 'show_price' => 1, 'show_rating' => 1, 'show_label' => 1, 'show_categories' => 1, 'show_add_to_cart' => 1, 'show_short_content' => 0), $atts));
        if ($columns > 6) {
            $columns = 6;
        }
        $extra_class_row = '';
        if ($row > 1) {
            $extra_class_row = "over-row";
        }
        if ($row > 4) {
            $columns = 4;
        }
        if ($per_page < 1) {
            $per_page = 6;
        }
        if ($columns < 1) {
            $columns = 2;
        }
        if ($columns > 6) {
            $columns = 6;
        }
        if ($row < 1) {
            $per_page = 2;
        }
        if ($row > 4) {
            $row = 4;
        }
        $options = array('show_image' => $show_image, 'show_categories' => $show_categories, 'show_title' => $show_title, 'show_rating' => $show_rating, 'show_sku' => $show_sku, 'show_short_content' => $show_short_content, 'show_price' => $show_price, 'show_label' => $show_label, 'show_add_to_cart' => $show_add_to_cart);
        wd_remove_function_from_product_hook($options);
        if (strlen(trim($big_product)) > 0) {
            $_big_prod = wd_product_by_id_function($big_product);
            if (isset($_big_prod) && $_big_prod->is_visible()) {
                $temp_add_to_cart_data = do_shortcode('[add_to_cart style="" show_price="false" id="' . $_big_prod->id . '"]');
            }
        }
        $args = array('post_type' => 'product', 'post_status' => 'publish', 'ignore_sticky_posts' => 1, 'posts_per_page' => $per_page, 'order' => 'desc', 'meta_key' => 'total_sales', 'orderby' => 'meta_value_num', 'meta_query' => array(array('key' => '_visibility', 'value' => array('catalog', 'visible'), 'compare' => 'IN')));
        if (isset($_big_prod) && $_big_prod->is_visible() && strlen(trim($_big_prod->id)) > 0) {
            $args['post__not_in'] = array($_big_prod->id);
        }
        if (trim($cat_slug) != '') {
            $args['tax_query'] = array(array('taxonomy' => 'product_cat', 'terms' => array(esc_attr($cat_slug)), 'field' => 'slug', 'operator' => 'IN'));
        }
        if (strlen($product_tag) > 0 && strcmp('all-product-tags', $product_tag) != 0) {
            $args = array_merge($args, array('product_tag' => $product_tag));
        }
        ob_start();
        if (isset($wd_data['wd_prod_cat_column']) && absint($wd_data['wd_prod_cat_column']) > 0) {
            $_old_wd_prod_cat_column = $wd_data['wd_prod_cat_column'];
            $wd_data['wd_prod_cat_column'] = $columns;
        }
        $_old_woocommerce_loop_columns = $woocommerce_loop['columns'];
        $products = new WP_Query($args);
        $woocommerce_loop['columns'] = $columns;
        $extra_class = '';
        if ($products->have_posts()) {
            ?>
				<?php 
            $_random_id = 'recent_product_by_category_slider_wrapper_' . rand();
            ?>
				<div class="recent-product-sc shortcode-slider shortcode-product <?php 
            echo $show_type;
            ?>
 <?php 
            echo $extra_class_row;
            ?>
 <?php 
            echo strlen(trim($big_product)) > 0 ? 'big_product' : '';
            ?>
" id="<?php 
            echo $_random_id;
            ?>
">
					<?php 
            if (strlen(trim($title)) > 0 || strlen(trim($desc)) > 0) {
                ?>
					<header class="shortcode-title-wrapper"> 
						<?php 
                if (strlen(trim($title)) > 0) {
                    echo "<h3 class='heading-title slider-title'>" . esc_html($title) . "</h3>";
                }
                ?>
					</header>
					<?php 
                if (strlen(trim($desc)) > 0) {
                    echo "<p class='slider-desc-wrapper'>" . esc_html($desc) . "</p>";
                }
                ?>
					<?php 
            }
            ?>
					<?php 
            if (isset($_big_prod) && $_big_prod->is_visible()) {
                $_product = wc_get_product($_big_prod->id);
                $post = $_product->post;
                $extra_class = 'col-sm-12';
                $product = wc_setup_product_data($post);
                $image_title = esc_attr($_product->get_title());
                $product_link = esc_url($_product->get_permalink());
                $image = get_the_post_thumbnail($post->ID, apply_filters('single_product_large_thumbnail_size', 'shop_single'), array('alt' => $image_title, 'title' => $image_title));
                echo '<div class="wd-big-product product ' . $extra_class . '">';
                echo sprintf('<div class="wd_image product-thumbnail-wrapper"><a title="%s" href="%s">%s</a></div>', $image_title, $product_link, $image);
                echo '<div class="wd_meta product-meta-wrapper"><p class="price">' . $_product->get_price_html() . '</p>';
                woocommerce_template_loop_add_to_cart();
                //echo $temp_add_to_cart_data;
                echo '</div></div>';
                wc_setup_product_data($post);
            }
            ?>
	
					<div class="<?php 
            echo $show_type;
            ?>
 product-slider-wrapper ">	
						<div class="product-slider-inner loading">
							
							<?php 
            $current_row = 0;
            ?>
							
							<?php 
            woocommerce_product_loop_start();
            ?>
								
								<?php 
            $woocommerce_loop['columns'] = 1;
            ?>
								
								<?php 
            while ($products->have_posts()) {
                $products->the_post();
                ?>
									
									<?php 
                if ($row > 1 && $current_row % $row == 0) {
                    echo '<div class="products_group">';
                }
                ?>
									
									<?php 
                woocommerce_get_template_part('content', 'product');
                ?>
									
									<?php 
                if ($row > 1 && $current_row % $row + 1 == $row) {
                    echo '</div>';
                }
                $current_row++;
                ?>
									
								<?php 
            }
            // end of the loop.
            ?>
							<?php 
            woocommerce_product_loop_end();
            ?>
							
						</div>
					</div>	
					<div class="clear"></div>
				</div>
				<script type='text/javascript'>
				//<![CDATA[
					jQuery(document).ready(function() {
						"use strict";
						var temp_visible = <?php 
            echo esc_js($columns);
            ?>
;
						
						var row = <?php 
            echo esc_js($row);
            ?>
;

						var item_width = 180;
						
						var show_nav = <?php 
            if ($show_nav) {
                ?>
 true <?php 
            } else {
                ?>
 false <?php 
            }
            ?>
;

						var show_icon_nav = <?php 
            if ($show_icon_nav) {
                ?>
 true <?php 
            } else {
                ?>
 false <?php 
            }
            ?>
;
						
						var object_selector = "#<?php 
            echo $_random_id;
            ?>
  .products";
						
						var autoplay = <?php 
            if ($autoplay) {
                ?>
 true <?php 
            } else {
                ?>
 false <?php 
            }
            ?>
;
						
						var slider_data = {
								nav : show_nav
								,dots : show_icon_nav
								,autoplay : autoplay
								,responsive	: {
									0 : {
										items:1
									},
									300 : {
										items: 2
									},
									600 : {
										items: 3
									},
									900 : {
										items: 4
									},
									1160 : {
										items: <?php 
            echo esc_js($columns);
            ?>
									}
								}
						}
							
						generate_horizontal_slide(slider_data, row, object_selector);
					});
				//]]>	
				</script>
				
			<?php 
        }
        wp_reset_postdata();
        wd_restore_function_to_product_hook();
        $woocommerce_loop['columns'] = $_old_woocommerce_loop_columns;
        if (isset($_old_wd_prod_cat_column) && absint($_old_wd_prod_cat_column > 0)) {
            $wd_data['wd_prod_cat_column'] = $_old_wd_prod_cat_column;
        }
        return '<div class="woocommerce">' . ob_get_clean() . '</div>';
    }