function vtwpr_wholesale_pricing_msgs_advanced($atts)
{
    global $vtwpr_rules_set, $vtwpr_setup_options;
    extract(shortcode_atts(array(group1_type => 'cart', group1_and_or_wholestore_msgs_only => 'and', group1_wholestore_msgs_only => 'no', and_or_group1_to_group2 => 'and', group2_rules => '', group2_and_or_roles => 'and', group2_roles => '', and_or_group2_to_group3 => 'and', group3_product_category => '', group3_and_or_plugin_category => 'or', group3_plugin_category => ''), $atts));
    //override default value with supplied parameters...
    vtwpr_set_selected_timezone();
    $vtwpr_rules_set = get_option('vtwpr_rules_set');
    $output = '<div class="vtwpr-advanced-deal-msg-area">';
    $msg_counter = 0;
    //echo 'incoming attributes= ' .$atts. '<br>'; //mwnt
    $sizeof_rules_set = sizeof($vtwpr_rules_set);
    for ($i = 0; $i < $sizeof_rules_set; $i++) {
        if ($vtwpr_rules_set[$i]->rule_status != 'publish') {
            continue;
        }
        $rule_is_date_valid = vtwpr_rule_date_validity_test($i);
        if (!$rule_is_date_valid) {
            continue;
        }
        if (defined('VTWPR_PRO_DIRNAME') && $vtwpr_setup_options['use_lifetime_max_limits'] == 'yes') {
            //IP is immediately available, check against Lifetime limits
            $rule_has_reached_lifetime_limit = vtwpr_rule_lifetime_validity_test($i, 'shortcode');
            if ($rule_has_reached_lifetime_limit) {
                continue;
            }
        }
        $status = array('group1_type' => '', 'group1_wholestore_msgs_only' => '', 'group2_rules' => '', 'group2_roles' => '', 'group3_product_category' => '', 'group3_plugin_category' => '', 'group1' => '', 'group2' => '', 'group3' => '', 'total' => '');
        //SET Status success/failed for each parameter
        switch ($group1_type) {
            case 'cart':
                if ($vtwpr_rules_set[$i]->rule_execution_type == 'display') {
                    $status['group1_type'] = 'failed';
                } else {
                    $status['group1_type'] = 'success';
                }
                break;
            case 'catalog':
                if ($vtwpr_rules_set[$i]->rule_execution_type == 'cart') {
                    $status['group1_type'] = 'failed';
                } else {
                    $status['group1_type'] = 'success';
                }
                break;
            case 'all':
                $status['group1_type'] = 'success';
                break;
            default:
                $status['group1_type'] = 'failed';
                break;
        }
        if ($group1_wholestore_msgs_only == 'yes') {
            if ($vtwpr_rules_set[$i]->inPop == 'wholeStore' || $vtwpr_rules_set[$i]->actionPop == 'wholeStore') {
                $status['group1_wholestore_msgs_only'] = 'success';
            } else {
                $status['group1_wholestore_msgs_only'] = 'failed';
            }
        } else {
            $status['group1_wholestore_msgs_only'] = 'success';
        }
        if ($group2_roles > ' ') {
            $userRole = vtwpr_get_current_user_role();
            $userRole_name = translate_user_role($userRole);
            $group2_roles_array = explode(",", $group2_roles);
            //remove comma separator, make list an array
            if (in_array($userRole_name, $group2_roles_array)) {
                $status['group2_roles'] = 'success';
            } else {
                $status['group2_roles'] = 'failed';
            }
        } else {
            $status['group2_roles'] = 'success';
        }
        if ($group2_rules > ' ') {
            $group2_rules_array = explode(",", $group2_rules);
            //remove comma separator, make list an array
            if (in_array($vtwpr_rules_set[$i]->post_id, $group2_rules_array)) {
                $status['group2_rules'] = 'success';
            } else {
                $status['group2_rules'] = 'failed';
            }
        } else {
            $status['group2_rules'] = 'success';
        }
        if ($group3_product_category > ' ') {
            $group3_product_category_array = explode(",", $group3_product_category);
            //remove comma separator, make list an array
            if (array_intersect($vtwpr_rules_set[$i]->prodcat_in_checked, $group3_product_category_array) || array_intersect($vtwpr_rules_set[$i]->prodcat_out_checked, $group3_product_category_array)) {
                $status['group3_product_category'] = 'success';
            } else {
                $status['group3_product_category'] = 'failed';
            }
        } else {
            $status['group3_product_category'] = 'success';
        }
        if ($group3_plugin_category > ' ') {
            $group3_plugin_category_array = explode(",", $group3_plugin_category);
            //remove comma separator, make list an array
            if (array_intersect($vtwpr_rules_set[$i]->rulecat_in_checked, $group3_plugin_category_array) || array_intersect($vtwpr_rules_set[$i]->rulecat_out_checked, $group3_plugin_category_array)) {
                $status['group3_plugin_category'] = 'success';
            } else {
                $status['group3_plugin_category'] = 'failed';
            }
        } else {
            $status['group3_plugin_category'] = 'success';
        }
        //Evaluate status settings
        //evaluate group1
        switch ($group1_and_or_wholestore_msgs_only) {
            case 'and':
                if ($status['group1_type'] == 'success' && $status['group1_wholestore_msgs_only'] == 'success') {
                    $status['group1'] = 'success';
                } else {
                    $status['group1'] = 'failed';
                }
                break;
            case 'or':
                if ($status['group1_type'] == 'success' || $status['group1_wholestore_msgs_only'] == 'success') {
                    $status['group1'] = 'success';
                } else {
                    $status['group1'] = 'failed';
                }
                break;
            default:
                $status['group1'] = 'failed';
                break;
        }
        //evaluate group2
        switch ($group2_and_or_roles) {
            case 'and':
                if ($status['group2_rules'] == 'success' && $status['group2_roles'] == 'success') {
                    $status['group2'] = 'success';
                } else {
                    $status['group2'] = 'failed';
                }
                break;
            case 'or':
                if ($status['group2_rules'] == 'success' || $status['group2_roles'] == 'success') {
                    $status['group2'] = 'success';
                } else {
                    $status['group2'] = 'failed';
                }
                break;
            default:
                $status['group2'] = 'failed';
                break;
        }
        //evaluate group3
        switch ($group3_and_or_plugin_category) {
            case 'and':
                if ($status['group3_product_category'] == 'success' && $status['group3_plugin_category'] == 'success') {
                    $status['group3'] = 'success';
                } else {
                    $status['group3'] = 'failed';
                }
                break;
            case 'or':
                if ($status['group3_product_category'] == 'success' || $status['group3_plugin_category'] == 'success') {
                    $status['group3'] = 'success';
                } else {
                    $status['group3'] = 'failed';
                }
                break;
            default:
                $status['group3'] = 'failed';
                break;
        }
        //evaluate all 3 groups together
        switch (true) {
            case $and_or_group1_to_group2 == 'and' && $and_or_group2_to_group3 == 'and':
                if ($status['group1'] == 'success' && $status['group2'] == 'success' && $status['group3'] == 'success') {
                    $status['total'] = 'success';
                } else {
                    $status['total'] = 'failed';
                }
                break;
            case $and_or_group1_to_group2 == 'and' && $and_or_group2_to_group3 == 'or':
                if ($status['group1'] == 'success' && $status['group2'] == 'success' || $status['group3'] == 'success') {
                    $status['total'] = 'success';
                } else {
                    $status['total'] = 'failed';
                }
                break;
            case $and_or_group1_to_group2 == 'or' && $and_or_group2_to_group3 == 'and':
                if (($status['group1'] == 'success' || $status['group2'] == 'success') && $status['group3'] == 'success') {
                    $status['total'] = 'success';
                } else {
                    $status['total'] = 'failed';
                }
                break;
            case $and_or_group1_to_group2 == 'or' && $and_or_group2_to_group3 == 'or':
                if ($status['group1'] == 'success' || $status['group2'] == 'success' || $status['group3'] == 'success') {
                    $status['total'] = 'success';
                } else {
                    $status['total'] = 'failed';
                }
                break;
        }
        if ($status['total'] == 'success') {
            $msg_counter++;
            $output .= '<span class="vtwpr-advanced-deal-msg" id="vtwpr-advanced-deal-msg-' . $vtwpr_rules_set[$i]->post_id . '">';
            $output .= stripslashes($vtwpr_rules_set[$i]->discount_product_full_msg);
            $output .= '</span>';
            $output .= '<span class="vtwpr-line-skip-with-display-block"></span>';
        }
    }
    //end 'for' loop
    if ($msg_counter == 0) {
        return;
    }
    //close owning div
    $output .= '</div>';
    //  vtwpr_enqueue_front_end_css();
    return $output;
}
Esempio n. 2
0
function vtwpr_apply_rules_to_single_product($product_id, $price = null)
{
    global $post, $vtwpr_cart, $vtwpr_cart_item, $vtwpr_info, $vtwpr_rules_set, $vtwpr_rule;
    vtwpr_set_selected_timezone();
    vtwpr_load_vtwpr_cart_for_single_product_price($product_id, $price);
    $vtwpr_info['current_processing_request'] = 'display';
    $vtwpr_apply_rules = new VTWPR_Apply_Rules();
    //also moves the data to $vtwpr_info
    vtwpr_move_vtwpr_single_product_to_session($product_id);
    //return formatted price; if discounted, store price, orig price and you_save in session id
    //  if no discount, formatted DB price returned, no session variable stored
    //price result stored in $vtwpr_info['product_session_info']
    return;
}
Esempio n. 3
0
 public function vtwpr_controller_init()
 {
     global $vtwpr_setup_options;
     //$product->get_rating_count() odd error at checkout... woocommerce/templates/single-product-reviews.php on line 20
     //  (Fatal error: Call to a member function get_rating_count() on a non-object)
     global $product;
     //Split off for AJAX add-to-cart, etc for Class resources.  Loads for is_Admin and true INIT loads are kept here.
     //require_once ( VTWPR_DIRNAME . '/core/vtwpr-load-execution-resources.php' );
     load_plugin_textdomain('vtwpr', null, dirname(plugin_basename(__FILE__)) . '/languages');
     require_once VTWPR_DIRNAME . '/core/vtwpr-backbone.php';
     require_once VTWPR_DIRNAME . '/core/vtwpr-rules-classes.php';
     require_once VTWPR_DIRNAME . '/admin/vtwpr-rules-ui-framework.php';
     require_once VTWPR_DIRNAME . '/woo-integration/vtwpr-parent-functions.php';
     require_once VTWPR_DIRNAME . '/woo-integration/vtwpr-parent-theme-functions.php';
     require_once VTWPR_DIRNAME . '/woo-integration/vtwpr-parent-cart-validation.php';
     require_once VTWPR_DIRNAME . '/woo-integration/vtwpr-parent-definitions.php';
     require_once VTWPR_DIRNAME . '/core/vtwpr-cart-classes.php';
     //************
     //changed for AJAX add-to-cart, removed the is_admin around these resources => didn't work, for whatever reason...
     if (defined('VTWPR_PRO_DIRNAME')) {
         require_once VTWPR_PRO_DIRNAME . '/core/vtwpr-apply-rules.php';
         //    require_once  ( VTWPR_PRO_DIRNAME . '/woo-integration/vtwpr-lifetime-functions.php' );
     } else {
         require_once VTWPR_DIRNAME . '/core/vtwpr-apply-rules.php';
     }
     $vtwpr_setup_options = get_option('vtwpr_setup_options');
     //put the setup_options into the global namespace
     vtwpr_debug_options();
     //v1.0.5
     /*  **********************************
             Set GMT time zone for Store 
         Since Web Host can be on a different
         continent, with a different *Day* and Time,
         than the actual store.  Needed for Begin/end date processing
         **********************************  */
     vtwpr_set_selected_timezone();
     if (is_admin()) {
         add_filter('plugin_action_links_' . VTWPR_PLUGIN_SLUG, array($this, 'vtwpr_custom_action_links'));
         require_once VTWPR_DIRNAME . '/admin/vtwpr-setup-options.php';
         require_once VTWPR_DIRNAME . '/admin/vtwpr-rules-ui.php';
         if (defined('VTWPR_PRO_DIRNAME')) {
             require_once VTWPR_PRO_DIRNAME . '/admin/vtwpr-rules-update.php';
             //          require_once ( VTWPR_PRO_DIRNAME . '/woo-integration/vtwpr-lifetime-functions.php' );
         } else {
             require_once VTWPR_DIRNAME . '/admin/vtwpr-rules-update.php';
         }
         require_once VTWPR_DIRNAME . '/admin/vtwpr-show-help-functions.php';
         require_once VTWPR_DIRNAME . '/admin/vtwpr-checkbox-classes.php';
         require_once VTWPR_DIRNAME . '/admin/vtwpr-rules-delete.php';
         $this->vtwpr_admin_init();
         //always check if the manually created coupon codes are there - if not create them.
         // vtwpr_woo_maybe_create_coupon_types();
         //v1.0.3 begin
         if (defined('VTWPR_PRO_DIRNAME') && version_compare(VTWPR_PRO_VERSION, VTWPR_MINIMUM_PRO_VERSION) < 0) {
             //'<0' = 1st value is lower
             add_action('admin_notices', array(&$this, 'vtwpr_admin_notice_version_mismatch'));
         }
         //v1.0.3 begin
     } else {
         //  add_action( "wp_enqueue_scripts", array(&$this, 'vtwpr_enqueue_frontend_scripts'), 1 );    //priority 1 to run 1st, so front-end-css can be overridden by another file with a dependancy
     }
     if (is_admin()) {
         /*
         //LIFETIME logid cleanup...
         //  LogID logic from wpsc-admin/init.php
         if(defined('VTWPR_PRO_DIRNAME')) {
           switch( true ) {
             case ( isset( $_REQUEST['wpsc_admin_action2'] ) && ($_REQUEST['wpsc_admin_action2'] == 'purchlog_bulk_modify') )  :
                    vtwpr_maybe_lifetime_log_bulk_modify();
                break; 
             case ( isset( $_REQUEST['wpsc_admin_action'] ) && ($_REQUEST['wpsc_admin_action'] == 'delete_purchlog') ) :
                    vtwpr_maybe_lifetime_log_roll_out_cntl();
                break;                                             
           } 
             
           if (version_compare(VTWPR_PRO_VERSION, VTWPR_MINIMUM_PRO_VERSION) < 0) {    //'<0' = 1st value is lower  
             add_action( 'admin_notices',array(&$this, 'vtwpr_admin_notice_version_mismatch') );            
           }          
         }
         
         //****************************************
         //INSIST that coupons be enabled in woo, in order for this plugin to work!!
         //****************************************
         $coupons_enabled = get_option( 'woocommerce_enable_coupons' ) == 'no' ? false : true;
         if (!$coupons_enabled) {  
           add_action( 'admin_notices',array(&$this, 'vtwpr_admin_notice_coupon_enable_required') );            
         }  
         */
     }
     return;
 }