Categories
Code Snippets PHP Wordpress

Redirect to shop if cart is empty

function cart_empty_redirect_to_shop() {
    global $woocommerce;
    
    $shop_page_url = get_permalink( woocommerce_get_page_id( 'shop' ) );

    if ( is_page('cart') && !sizeof($woocommerce->cart->cart_contents) ) {
        wp_redirect( $shop_page_url, 301 ); 
        exit;
    }
}
# -*- coding: utf-8 -*-
"""
Created on Sat Apr  3 14:12:04 2021

@author: KG
"""

# Import modules
import pandas as pd
import math
from pulp import *

# Define variables
current_cost = 0.0
food_dict = {}

# Load food data into food pandas dataframe
food = pd.read_excel('diet.xls', skipfooter=3)

# Get a preview of our food dataframe
print(food)

# Create a list of Protein food choices
protein_list = ['Roasted Chicken', 'Poached Eggs', 'Scrambled Eggs', 'Bologna,Turkey', 'Frankfurter, Beef', 'Ham,Sliced,Extralean', 'Kielbasa,Prk', 'Pizza W/Pepperoni', 'Hamburger W/Toppings', 'Hotdog, Plain', 'Pork', 'Sardines in Oil', 'White Tuna in Water', 'Chicknoodl Soup', 'Splt Pea&Hamsoup', 'Beanbacn Soup,W/Watr']

# Load minimum and maximum values into the min_max table
min_max = pd.read_excel('diet.xls', skiprows = food.shape[0]+1, usecols=("C:N"), header=0)
column_names = pd.read_excel('diet.xls', usecols=("C:N"), nrows=0)
min_max = pd.DataFrame(data=min_max.values, columns=column_names.columns)

# Get a preview of our min_max file
print(min_max)

# Convert our food dataframe to a list
food_data = food.values.tolist()
food_list = [x[0] for x in food_data]
    
# Create the Optimization Problem
prob = LpProblem('DietProblem', LpMinimize)

# Create the variables using LpVariable.dicts
food_vars = LpVariable.dicts( "Food", food_list, lowBound = 0 ) # for food variables
food_chosen = LpVariable.dicts("Chosen",food_list,0,1,cat='Integer') # for chosen foods
protein_chosen = LpVariable.dicts("Protein",protein_list,0,1,cat='Integer') # for protein foods chosen

# Add the Objective Function for cost
costs = {x[0]:x[1] for x in food_data}
prob += lpSum( costs[i] * food_vars[i] for i in food_list )

# Add each variable to the Optimization Problem by looping over the min_max dataframe
for v in range(len(min_max.columns[1:])):
    
    # Get the variable name from the min_max dataframe
    variable = min_max.columns[1:][v]
    
    # Add the variable to the Optimization Problem
    food_dict[variable] = {x[0]:x[v+3] for x in food_data} 
    prob += lpSum( food_dict[variable][i] * food_vars[i] for i in food_list ) >= min_max[variable][0] # >= min value for the variable
    prob += lpSum( food_dict[variable][i] * food_vars[i] for i in food_list ) <= min_max[variable][1] # <= max value for the variable
        

# Add the Constraint where each food much be atleast 1/10 of the total serving
for f in food_list:
    prob += food_vars[f] >= food_chosen[f] * 0.10


# Add the Constraint of selecing either Celery or Frozen Broccoli
prob += food_chosen['Frozen Broccoli'] + food_chosen['Celery, Raw'] <= 1

# Add the Constraint of selecting atleast 3 choices from the list of Protein items
prob += lpSum([food_chosen[p] for p in protein_list]) >= 3

# Store the solution of the Optimization Problem
soln = prob.solve()

# Get the Status of the Optimization Problem
print( LpStatus[prob.status])

# Get the Amounts of the Foods Chosen 
for v in prob.variables():
    if v.varValue != 0:
        print( f"{v.name} = {v.varValue:.2f}")

# Get the Final Cost of Food Chosen
print(f"Cost: {value(prob.objective)}")

 

Leave a Reply