Skip to content

Instantly share code, notes, and snippets.

@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Get Price HTML Manually
Created July 13, 2021 06:15
Woo Discount Rules v2 - Get Price HTML Manually
if ( class_exists('\Wdr\App\Controllers\ManageDiscount')) {
if (is_a($product, 'WC_Product')) {
$manage_discount = new \Wdr\App\Controllers\ManageDiscount();
$price_html = "<div class='price'></div>";
$product_qty = 1;
$price_html = $manage_discount->getPriceHtml($price_html, $product, $product_qty, true);
}
}
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Hide shipping when discount rules free shipping is available
Created July 12, 2021 09:59
Woo Discount Rules v2 - Hide shipping when discount rules free shipping is available
/**
* Hide shipping rates when discount rules free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function my_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Get cart page discounts
Created July 9, 2021 08:52
Woo Discount Rules v2 - Get cart page discounts
if ( class_exists('\Wdr\App\Controllers\ManageDiscount')) {
$manage_discount = new \Wdr\App\Controllers\ManageDiscount();
$manage_discount->calculateCartPageDiscounts();
$discount_details = \Wdr\App\Controllers\ManageDiscount::$calculated_cart_item_discount;
// $discount_details -> details of discounts array
}
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - get discount details for order object
Last active July 9, 2021 06:09
Woo Discount Rules v2 - get discount details for order object
$items = $order->get_items(); //order object
if (!empty($items) && class_exists('\Wdr\App\Controllers\ManageDiscount')) {
$manage_discount = new \Wdr\App\Controllers\ManageDiscount (); //Create new object
foreach ($items as $key => $item) { //loop
$discount_details = $item->get_meta('_advanced_woo_discount_item_total_discount');// Discount Details
if (!empty($discount_details)) {
$discount = $manage_discount->getDiscountPerItem($discount_details); //Discount
}
}
}
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Check customized condition
Last active July 8, 2021 05:43
Woo Discount Rules v2 - Check customized condition
add_filter('advanced_woo_discount_rules_check_condition', '__return_true');
add_filter('advanced_woo_discount_rules_is_conditions_passed', function($result, $rule_object, $rule){
$conditions = $rule_object->getConditions();
$rule_id = $rule_object->getId();
if(in_array($rule_id, array(1, 2))){
//Your custom logics enter here and return true or false
//true -> Run rule
//false -> Do not run rule
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Reverse strike out
Created July 5, 2021 09:09
Woo Discount Rules v2 - Reverse strike out
add_filter('advanced_woo_discount_rules_strikeout_price_html', function($html, $original_price, $discounted_price, $is_variable_product, $initial_price_html, $separator){
if($initial_price_html){
$html = '<ins>' . $discounted_price . '</ins>'. $separator .'<del>' . $initial_price_html . '</del>' ;
}else{
$html = '<ins>' . $discounted_price . '</ins>'. $separator .'<del>' . $original_price . '</del>' ;
}
return $html;
}, 10, 6);
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Remove woo_discount_rules menu for shop_manager user role
Created July 2, 2021 12:40
Woo Discount Rules v2 - Remove woo_discount_rules menu for shop_manager user role
function wdr_remove_woocommerce_submenu() {
$user = wp_get_current_user();
if ( isset( $user['roles'][0] ) && $user['roles'][0] == 'shop_manager' ) {
remove_submenu_page( 'woocommerce', 'woo_discount_rules' ); // when user is shop manager
}
}
add_action( 'admin_menu', 'wdr_remove_woocommerce_submenu', 99, 0 );
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Category, Taxonomy(In list) and Tag (Not in list) combinatiom filter (AND)
Created July 2, 2021 05:52
Woo Discount Rules v2 - Category, Taxonomy(In list) and Tag (Not in list) combinatiom filter (AND)
add_filter('advanced_woo_discount_rules_filter_passed', function ($filter_passed, $rule, $product, $sale_badge) {
//'array(1,2)' - give rule id as you needed
if (in_array($rule->getId(), array(1, 2)) && class_exists('\Wdr\App\Helpers\Woocommerce')) {
$rule_filter = $rule->getFilter();
$product_id = \Wdr\App\Helpers\Woocommerce::getProductId($product);
$product_parent = \Wdr\App\Helpers\Woocommerce::getProductParentId($product_id);
$product_id = !empty($product_parent) ? $product_parent : $product_id;
$categories = \Wdr\App\Helpers\Woocommerce::getProductCategories($product);
$category_id = $product_tag_ids = $tag_ids = array();
if ($rule_filter) {
@Balakrishnan-flycart
Balakrishnan-flycart / Discount Rules v2: Cart page compatible with Elementor plugin
Created July 2, 2021 05:01
Discount Rules v2: Cart page compatible with Elementor plugin
add_action('woocommerce_before_cart', function (){
if (!WC()->cart->is_empty()){
WC()->cart->calculate_totals();
}
});
@Balakrishnan-flycart
Balakrishnan-flycart / Woo Discount Rules v2 - Calculate multiple coupon discount
Created June 21, 2021 12:45
Woo Discount Rules v2 - Calculate multiple coupon discount
add_filter('advanced_woo_discount_rules_apply_coupon_for_products_based_on_filters', '__return_false');