Custom price calc

<?php

// gblijsten
// replace woocommerce_gravityforms_get_updated_price with custom method to use 'checkCustomPrice()' function
remove_action('wp_ajax_nopriv_gforms_get_updated_price', 'woocommerce_gravityforms_get_updated_price');
remove_action('wp_ajax_gforms_get_updated_price', 'woocommerce_gravityforms_get_updated_price');
add_action('wp_ajax_nopriv_gforms_get_updated_price', 'woocommerce_gravityforms_get_updated_priced', 10);
add_action('wp_ajax_gforms_get_updated_price', 'woocommerce_gravityforms_get_updated_priced', 10);

function woocommerce_gravityforms_get_updated_priced()
{
	global $woocommerce;
	header('Cache-Control: no-cache, must-revalidate');
	header('Content-type: application/json');
	
	$variation_id = isset($_POST['variation_id']) ? $_POST['variation_id'] : '';
	$product_id   = isset($_POST['product_id']) ? $_POST['product_id'] : 0;
	$gform_total  = isset($_POST['gform_total']) ? $_POST['gform_total'] : 0;

	$product_data = null;
	$product_data = wc_get_product(!empty($variation_id) ? $variation_id : $product_id);
	//$product_data = wc_get_product(186);
	if (empty($product_data)) {
		die();
	}

	$discount_price        = false;
	$gforms_discount_price = false;
	$base_price            = wc_get_price_to_display($product_data, array( 'price' => $product_data->get_price('view') )); // suiteseven: 'view' instead of 'edit' to be able to filter it

	// suiteseven custom:
	$newPrice = checkCustomPrice($product_id, $product_data);
	if ($newPrice != 0 && is_numeric($newPrice)) :
		$base_price = $newPrice;
	endif;

	$price             = $discount_price ? $discount_price : $base_price;
	$gform_final_total = $gforms_discount_price ? $gforms_discount_price : $price + $gform_total;

	$result = array(
	'formattedBasePrice'      => apply_filters('woocommerce_gform_base_price', wc_price($price), $product_data),
	'formattedTotalPrice'     => apply_filters('woocommerce_gform_total_price', wc_price($gform_final_total), $product_data),
	'formattedVariationTotal' => apply_filters('woocommerce_gform_variation_total_price', wc_price($gform_total), $product_data)
	);

	echo json_encode($result);
	die();
}
Last Updated:
Contributors: Niek Vlam, Suite Seven