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)}")