Filter used to validate and modify the data while proceeding to the checkout page . It contain one parameter $responce ,witch contain the data of the cart.
The sample below shows an example of how you could modify it:
function rpress_delivery_fee_validate_purchase( $response ) {
$service_type = isset( $_COOKIE['service_type'] ) ? $_COOKIE['service_type'] : 'pickup';
if ( $service_type == 'pickup' ) {
RPRESS()->fees->remove_fee( 'delivery_fee' );
return $response;
}
$delivery_settings = RP_Delivery_Fee_Settings::rp_fee_settings();
$minimum_order_amount_error = isset( $delivery_settings['minimum_order_amount_error'] ) ? $delivery_settings['minimum_order_amount_error'] : __('Minimum order amount for this address is ') . '{minimum_order_amount}';
$delivery_zip_code = isset( $_COOKIE['delivery_zip'] ) ? $_COOKIE['delivery_zip'] : '';
$delivery_latlng = isset( $_COOKIE['delivery_latlng'] ) ? ( trim( $_COOKIE['delivery_latlng'] ) ) : '';
$store_position = isset( $_COOKIE['store_lat_long'] ) ? $_COOKIE['store_lat_long'] : '';
$delivery_location = isset( $_COOKIE['delivery_location'] ) ? ( trim( $_COOKIE['delivery_location'] ) ) : '';
$delivery_fee_method = isset( $delivery_settings['delivery_method'] ) ? $delivery_settings['delivery_method'] : 'zip_based';
$cart_subtotal = rpress_get_cart_subtotal();
$tax = rpress_get_cart_tax();
$new_cart_subtotal = $cart_subtotal + $tax;
if ( $delivery_fee_method == 'zip_based' ) {
if ( !empty( $delivery_zip_code ) ) {
$delivery_response = $this->get_delivery_fee_by_zip( $delivery_zip_code );
}
} else {
if ( !empty( $delivery_latlng ) ) {
$delivery_response = $this->get_delivery_fee_by_location( $delivery_latlng, $store_position );
}
}
$set_min_order_amount = isset( $delivery_response['set_min_order_amount'] ) ? $delivery_response['set_min_order_amount'] : 0;
if ( $set_min_order_amount != 0 && $set_min_order_amount > 0 && $new_cart_subtotal < $set_min_order_amount ) {
$min_order_amount_message = str_replace( '{minimum_order_amount}', rpress_currency_filter( rpress_format_amount( $set_min_order_amount ) ) , $minimum_order_amount_error );
$response['status'] = 'error';
$response['error_msg'] = $response['msg'] = $min_order_amount_message;
}
return $response;
}
add_filter( 'rpress_proceed_checkout', 'rpress_delivery_fee_validate_purchase', 10, 1 );