コード例 #1
0
 public static function instance()
 {
     if (!self::$instance) {
         self::$instance = new WC_Catalog_Restrictions_Filters();
     }
     return self::$instance;
 }
コード例 #2
0
 public function __construct()
 {
     define('WOOCOMMERCE_CATALOG_RESTRICTIONS_VERSION', $this->version);
     $this->template_url = apply_filters('woocommerce_catalog_restrictions_template_url', 'woocommerce-catalog-visibility-options/');
     require 'woocommerce-catalog-restrictions-functions.php';
     require 'shortcodes/class-wc-catalog-restrictions-location-picker-shortcode.php';
     require 'widgets/class-wc-catalog-restrictions-location-picker-widget.php';
     WC_Catalog_Restrictions_Location_Picker_ShortCode::instance();
     WC_Catalog_Restrictions_Location_Picker_Widget::register();
     if (is_admin()) {
         require 'classes/class-wc-catalog-restrictions-product-admin.php';
         require 'classes/class-wc-catalog-restrictions-category-admin.php';
         WC_Catalog_Restrictions_Product_Admin::instance();
         WC_Catalog_Restrictions_Category_Admin::instance();
         if ($this->get_setting('_wc_restrictions_locations_enabled', 'no') == 'yes') {
             require 'classes/class-wc-catalog-restrictions-user-admin.php';
             WC_Catalog_Restrictions_User_Admin::instance();
         }
     } else {
         add_action('woocommerce_init', array($this, 'on_init'));
         require 'classes/class-wc-catalog-restrictions-query.php';
         require 'classes/class-wc-catalog-restrictions-filters.php';
         WC_Catalog_Restrictions_Query::instance();
         WC_Catalog_Restrictions_Filters::instance();
         //load after woocommerce
         if ($this->get_setting('_wc_restrictions_locations_enabled', 'no') == 'yes') {
             add_filter('template_redirect', array(&$this, 'template_redirect'), 999);
         }
     }
     if (is_admin() && !defined('DOING_AJAX')) {
         require 'woocommerce-catalog-restrictions-installer.php';
         $this->install();
         add_action('admin_init', array($this, 'on_admin_init'));
     }
     //Setup Hooks to clear transients when a post is saved, a category is saved, a user changes their location, a user is updated, a user logs on / out.
     add_action('save_post', array(&$this, 'clear_transients'));
     add_action('created_term', array(&$this, 'clear_transients'));
     add_action('edit_term', array(&$this, 'clear_transients'));
     add_action('edit_user_profile_update', array(&$this, 'clear_transients'));
     add_action('user_register', array(&$this, 'clear_session_transients'));
     add_action('wp_login', array(&$this, 'clear_session_transients'));
     add_action('wp_logout', array(&$this, 'clear_session_transients'));
     add_action('wc_restrictions_location_updated', array(&$this, 'clear_session_transients'));
     add_action('wc_restrictions_location_updated', array($this, 'maybe_clear_cart'));
 }
コード例 #3
0
ファイル: add-to-cart.php プロジェクト: simonsays88/costa
    <?php $out_of_stock = sprintf( '<a class="out-of-stock" title="%s">%s</a>', $label, $label ); ?>

<?php
}
else {
    ?>

    <?php

    $add_to_cart  = '';
    $out_of_stock = '';


    // plugin catalog mode fix
    if ( is_catalog_mode_installed() && ( !WC_Catalog_Restrictions_Filters::instance()->user_can_purchase( $product ) ) ) {

        global $wc_cvo;

        // add to cart alternative text
        $label = wptexturize($wc_cvo->setting('wc_cvo_atc_text'));
        if (!empty($label)) {

            $link = get_permalink($product->ID);

            $link_add=sprintf('<a href="%s" data-product_id="%s" class="button product_type_%s">%s</a>', $link, $product->id, $product->product_type, $label);

            $add_to_cart = $link_add;

        }
    }
コード例 #4
0
 public function on_wishlist_user_can_purcahse($result, $product)
 {
     return $result & WC_Catalog_Restrictions_Filters::instance()->user_can_purchase($product);
 }
コード例 #5
0
 /**
  * Add the pricing calculator and quantity input if the user can view the price
  *
  * @since 3.7.0
  */
 public function catalog_visibility_options_pricing_calculator_quantity_input()
 {
     global $product;
     // bail if the calculator is not enabled for this product
     if (!$product || !WC_Price_Calculator_Product::calculator_enabled($product)) {
         return;
     }
     // bail if current user can't view the price
     if (class_exists('WC_Catalog_Restrictions_Filters') && !WC_Catalog_Restrictions_Filters::instance()->user_can_view_price($product)) {
         return;
     }
     // render pricing calculator
     wc_measurement_price_calculator()->get_product_page_instance()->render_price_calculator();
     // render quantity input
     if (!$product->is_sold_individually()) {
         woocommerce_quantity_input(array('min_value' => apply_filters('woocommerce_quantity_input_min', 1, $product), 'max_value' => apply_filters('woocommerce_quantity_input_max', $product->backorders_allowed() ? '' : $product->get_stock_quantity(), $product)));
     }
 }