Advertisement
imranmodel32

wpb-wrps-functions.php

Jan 22nd, 2016
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.68 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * WPB WooCommerce Related Products Slider PRO
  5.  * By WPbean
  6.  */
  7.  
  8.  
  9. if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
  10.  
  11.  
  12.  
  13. /**
  14.  * Related Product Function
  15.  */
  16.  
  17. if( !function_exists('wpb_wrps_related_products') ){
  18.     function wpb_wrps_related_products(){
  19.  
  20.         global $post,$product;
  21.  
  22.         if ( empty( $product ) || ! $product->exists() ) {
  23.             return;
  24.         }
  25.  
  26.         $related = $product->get_related( wpb_wrps_get_option( 'wpb_wrps_number_of_products', 'wpb_wrps_general', 100 ) );
  27.  
  28.         if ( $related ) {
  29.          
  30.             $args =  apply_filters( 'wpb_wrps_related_products_args', array(
  31.                 'post__not_in'          =>  array( $product->id ),
  32.                 'post__in'              =>  $related,
  33.                 'posts_per_page'        =>  -1,
  34.                 'post_type'             =>  'product',
  35.                 'orderby'               =>  'rand',
  36.                 'order'                 =>  'DESC',
  37.                 'ignore_sticky_posts'   =>  1,
  38.                 'no_found_rows'         =>  1,
  39.             ) );
  40.  
  41.             $wp_query = new WP_Query( $args );
  42.  
  43.             ?>
  44.             <?php if ($wp_query->have_posts()):?>
  45.  
  46.                 <div class="wrps_related_products_area">
  47.  
  48.                     <h2 class="wrps_related_products_area_title"><span><?php echo( apply_filters( 'wpb_wrps_title', wpb_wrps_get_option( 'wpb_wrps_slider_title', 'wpb_wrps_general', __( 'Related Products','wpb-wrps' ) ) ) ); ?></span></h2>
  49.  
  50.                     <div class="wrps_related_products <?php echo wpb_wrps_get_option( 'wpb_wrps_theme', 'wpb_wrps_general', 'wrps_theme_hover' ) ?>">
  51.  
  52.                         <?php while ($wp_query->have_posts()) : $wp_query->the_post();?>
  53.  
  54.                             <?php
  55.                                 global $post,$product;
  56.                                 $price_html = $product->get_price_html();
  57.                             ?>
  58.  
  59.                             <div class="wpb-wrps-item <?php echo implode( get_post_class()," " ) ?>">
  60.  
  61.                                 <?php
  62.                                     if ( $product->is_on_sale() ) {
  63.                                         echo apply_filters( 'woocommerce_sale_flash', '<span class="wpb_wrps_onsale">' . __( 'Sale!', 'wpb-wrps' ) . '</span>', $post, $product );
  64.                                     }
  65.                                 ?>
  66.  
  67.                                 <figure>
  68.                                     <a href="<?php the_permalink(); ?>" class="wpb_wrps_img_url"><?php echo woocommerce_get_product_thumbnail(); ?></a>
  69.                                     <figcaption>
  70.                                         <?php echo ( $price_html ? '<div class="wpb_wrps_price">'.$price_html.'</div>' : '' ); ?>
  71.                                     </figcaption>
  72.                                 </figure>
  73.                                 <div class="product-caption">
  74.                                     <h3 class="wpb_wrps_title">
  75.                                         <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
  76.                                     </h3>
  77.                                     <div class="wpb_wrps_cart_btn">
  78.                                         <?php woocommerce_template_loop_add_to_cart(); ?>
  79.                                     </div>
  80.                                 </div>
  81.                             </div>
  82.  
  83.                         <?php endwhile; ?>
  84.  
  85.                     </div><!-- wrps_related_products_area -->
  86.                        
  87.                 </div>
  88.  
  89.                 <script>
  90.                     jQuery(".wrps_related_products").owlCarousel({
  91.                         items : <?php echo wpb_wrps_get_option( 'wpb_wrps_number_of_columns', 'wpb_wrps_general', 3 ) ?>,
  92.                         itemsDesktop : [1199,<?php echo wpb_wrps_get_option( 'wpb_wrps_number_of_columns_desktop', 'wpb_wrps_slider', 3 ) ?>],
  93.                         itemsDesktopSmall : [980,<?php echo wpb_wrps_get_option( 'wpb_wrps_number_of_columns_desktop_small', 'wpb_wrps_slider', 3 ) ?>],
  94.                         itemsTablet: [768,<?php echo wpb_wrps_get_option( 'wpb_wrps_number_of_columns_tablet', 'wpb_wrps_slider', 2 ) ?>],
  95.                         itemsMobile : [479,<?php echo wpb_wrps_get_option( 'wpb_wrps_number_of_columns_mobile', 'wpb_wrps_slider', 1 ) ?>],
  96.  
  97.                         //Autoplay
  98.                         autoPlay : <?php echo ( wpb_wrps_get_option( 'wpb_wrps_autoplay', 'wpb_wrps_slider', 'off' ) == 'on' ? wpb_wrps_get_option( 'wpb_wrps_autoplay_speed', 'wpb_wrps_slider', 3000 ) : 'false' );?>,
  99.                         stopOnHover : false,
  100.  
  101.                         // Navigation
  102.                         navigation : <?php echo ( wpb_wrps_get_option( 'wpb_wrps_navigation', 'wpb_wrps_slider', 'on' ) == 'on' ? 'true' : 'false' );?>,
  103.                         navigationText : ['<i class="wpb-icon-angle-left"></i>','<i class="wpb-icon-angle-right"></i>'],
  104.                         rewindNav : true,
  105.                         scrollPerPage : false,
  106.  
  107.                         //Pagination
  108.                         pagination : <?php echo ( wpb_wrps_get_option( 'wpb_wrps_pagination', 'wpb_wrps_slider', 'on' ) == 'on' ? 'true' : 'false' );?>,
  109.                         paginationNumbers: false,
  110.  
  111.                         //Basic Speeds
  112.                         slideSpeed : 500,
  113.                         paginationSpeed : 800,
  114.                         rewindSpeed : 1000,
  115.  
  116.                         // RTL Direction
  117.                         <?php
  118.                             if( is_rtl() ){
  119.                                 echo "direction:'rtl',";
  120.                             }
  121.                         ?>
  122.  
  123.                     });
  124.                 </script>
  125.  
  126.             <?php
  127.             endif;
  128.             wp_reset_postdata();
  129.  
  130.         }
  131.     }
  132. }
  133.  
  134.  
  135.  
  136.  
  137.  
  138. /**
  139.  * Add plugin action links
  140.  */
  141.  
  142. function wpb_wrps_plugin_actions_links( $links ) {
  143.     if( is_admin() ){
  144.         $links[] = '<a href="http://wpbean.com/support/" target="_blank">'. __('Support','wpb-wrps') .'</a>';
  145.     }
  146.     return $links;
  147. }
  148. add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), 'wpb_wrps_plugin_actions_links' );
  149.  
  150.  
  151.  
  152. /**
  153.  * Getting ready the plugin settings
  154.  */
  155.  
  156. if( !function_exists('wpb_wrps_get_option') ){
  157.  
  158.     function wpb_wrps_get_option( $option, $section, $default = '' ) {
  159.      
  160.         $options = get_option( $section );
  161.      
  162.         if ( isset( $options[$option] ) ) {
  163.             return $options[$option];
  164.         }
  165.      
  166.         return $default;
  167.     }
  168.  
  169. }
  170.  
  171.  
  172.  
  173. /**
  174.  * Setup Product specefic relative products
  175.  */
  176.  
  177. if( !function_exists('wpb_wrps_filter_related_products') ){
  178.     function wpb_wrps_filter_related_products($args) {
  179.  
  180.         global $post;
  181.         $related = get_post_meta( $post->ID, '_wpb_wrps_related_ids', true );
  182.         $disable_slider = get_post_meta( $post->ID, '_wpb_wrps_disable_relative_products_slider', true );
  183.  
  184.         if ( $disable_slider && $disable_slider == 'yes' ) { // Disable relative product slider
  185.             $args['post__in'] = array(0);
  186.         }elseif ( $related && !empty( $related ) ) { // Set Product specefic relative product custom slider
  187.             $args['post__in'] = $related;
  188.         }
  189.        
  190.  
  191.         return $args;
  192.  
  193.     }
  194. }
  195. add_filter( 'wpb_wrps_related_products_args', 'wpb_wrps_filter_related_products' );
  196.  
  197.  
  198.  
  199.  
  200. /**
  201.  * Setup custom styling  
  202.  */
  203.  
  204. if( !function_exists('wpb_wrps_custom_styles') ){
  205.  
  206.     function wpb_wrps_custom_styles() {
  207.         wp_enqueue_style( 'wpb-wrps-custom-style', plugins_url('../assets/css/custom.css', __FILE__), '','1.0', false );
  208.         $custom_css = '';
  209.         $navigation_color = wpb_wrps_get_option( 'wpb_wrps_navigation_color','wpb_wrps_style' );
  210.         $pagination_color = wpb_wrps_get_option( 'wpb_wrps_pagination_color','wpb_wrps_style' );
  211.         $primary_color_hover = wpb_wrps_get_option( 'wpb_wrps_primary_color_hover','wpb_wrps_style' );
  212.         $secondary_color_hover = wpb_wrps_get_option( 'wpb_wrps_secondary_color_hover','wpb_wrps_style' );
  213.         $primary_color_box = wpb_wrps_get_option( 'wpb_wrps_primary_color_box','wpb_wrps_style' );
  214.         $secondary_color_box = wpb_wrps_get_option( 'wpb_wrps_secondary_color_box','wpb_wrps_style' );
  215.         $on_sell_bg = wpb_wrps_get_option( 'wpb_wrps_on_sell_bg','wpb_wrps_style' );
  216.  
  217.         if( $navigation_color  ){
  218.             $custom_css .= ".wrps_related_products_area .owl-theme .owl-controls .owl-buttons div { border-color: {$navigation_color}; }";
  219.             $custom_css .= ".wrps_related_products_area .owl-theme .owl-controls .owl-buttons i { color: {$navigation_color}; }";
  220.         }
  221.         if ( $pagination_color ) {
  222.             $custom_css .= ".wrps_related_products_area .owl-theme .owl-controls .owl-page span { background-color: {$pagination_color}; }";
  223.         }
  224.         if ( $primary_color_hover ) {
  225.             $custom_css .= ".wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.button, .wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.added_to_cart { color: {$primary_color_hover}; border-color: {$primary_color_hover}; }";
  226.             $custom_css .= ".wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.button:hover, .wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.added_to_cart:hover { background-color: {$primary_color_hover}; }";
  227.             $custom_css .= ".wrps_related_products.wrps_theme_hover .wpb_wrps_title a, .wrps_related_products.wrps_theme_hover .wpb_wrps_title a:hover, .wrps_related_products.wrps_theme_hover .wpb_wrps_price, .wrps_related_products.wrps_theme_hover .wpb_wrps_price del { color: {$primary_color_hover}; }";
  228.         }
  229.         if ( $secondary_color_hover ) {
  230.             $custom_css .= ".wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.button:hover, .wrps_related_products.wrps_theme_hover .wpb_wrps_cart_btn a.added_to_cart:hover { color: {$secondary_color_hover};}";
  231.         }
  232.         if ( $primary_color_box ) {
  233.             $custom_css .= ".wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.button, .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.added_to_cart { background-color: {$primary_color_box}; border-color: {$primary_color_box};}";
  234.             $custom_css .= ".wrps_related_products.wrps_theme_box .wpb_wrps_title a, .wrps_related_products.wrps_theme_box .wpb_wrps_price .amount, .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.button:hover, .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.added_to_cart:hover { color: {$primary_color_box};}";
  235.         }
  236.         if ( $secondary_color_box ) {
  237.             $custom_css .= ".wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.button, .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.added_to_cart { color: {$secondary_color_box};}";
  238.             $custom_css .= " .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.button:hover, .wrps_related_products.wrps_theme_box .wpb_wrps_cart_btn a.added_to_cart:hover { background-color: {$secondary_color_box};}";
  239.         }
  240.         if ( $on_sell_bg ) {
  241.             $custom_css .= ".wpb_wrps_onsale { background-color: {$on_sell_bg}; }";
  242.         }
  243.  
  244.  
  245.         if( $custom_css ){
  246.             wp_add_inline_style( 'wpb-wrps-custom-style', $custom_css );
  247.         }
  248.  
  249.     }
  250.  
  251. }
  252. add_action( 'wp_enqueue_scripts', 'wpb_wrps_custom_styles', 20 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement