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; }
/** * 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()); }
/** * @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; } } }
<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(); }
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>'; }