1. Home
  2. Capture Billing & Shipping details at Checkout for guest Users

Capture Billing & Shipping details at Checkout for guest Users

How can the site admin add more fields to the list (e.g. shipping postcode) of the fields captured from the Checkout page?

Hook
wcap_detect_more_fields_at_checkout

Usage:

add_filter( 'wcap_detect_more_fields_at_checkout', 'on_change_shipping', 10, 1 );

Example:

/**
* Add this code snippet in the "functions.php" file of your currently active theme.
*/
function on_change_shipping( $fields = '' ) {
	$fields .= ', input#shipping_postcode';
	return $fields;
}
add_filter( 'wcap_detect_more_fields_at_checkout', 'on_change_shipping', 10, 1 );

NOTE: The plugin sends the data from all the standard WooCommerce fields present at Checkout in the AJAX. However, only some of this data is inserted in the DB table.

How can I add the data from more WooCommerce fields at Billing & Shipping in the guest cart history table?

Hook for Insert
wcap_insert_guest_data_at_checkout

Hook for update
wcap_update_guest_data_at_checkout

Usage:

add_filter( 'wcap_insert_guest_data_at_checkout', 'add_billing_shipping_details', 10, 2 );
add_filter( 'wcap_update_guest_data_at_checkout', 'add_billing_shipping_details', 10, 2 );

Example:

/**
* Add this code snippet in the "functions.php" file of your currently active theme.
*/
function add_billing_shipping_details( $insert_data, $post ) {
	$insert_data['billing_company_name']  = isset( $post['billing_company'] ) ? sanitize_text_field( $post['billing_company'] ) : '';
	$insert_data['billing_address_1']     = isset( $post['billing_address_1'] ) ? sanitize_text_field( $post['billing_address_1'] ) : '';
	$insert_data['billing_address_2']     = isset( $post['billing_address_2'] ) ? sanitize_text_field( $post['billing_address_2'] ) : '';
	$insert_data['billing_city']          = isset( $post['billing_city'] ) ? sanitize_text_field( $post['billing_city'] ) : '';
	$insert_data['billing_county']        = isset( $post['billing_state'] ) ? sanitize_text_field( $post['billing_state'] ) : '';
	$insert_data['ship_to_billing']       = isset( $post['ship_to_billing'] ) ? sanitize_text_field( $post['ship_to_billing'] ) : '';
	$insert_data['shipping_first_name']   = isset( $post['shipping_first_name'] ) ? sanitize_text_field( $post['shipping_first_name'] ) : '';
	$insert_data['shipping_last_name']    = isset( $post['shipping_last_name'] ) ? sanitize_text_field( $post['shipping_last_name'] ) : '';
	$insert_data['shipping_company_name'] = isset( $post['shipping_company'] ) ? sanitize_text_field( $post['shipping_company'] ) : '';
	$insert_data['shipping_address_1']    = isset( $post['shipping_address_1'] ) ? sanitize_text_field( $post['shipping_address_1'] ) : '';
	$insert_data['shipping_address_2']    = isset( $post['shipping_address_2'] ) ? sanitize_text_field( $post['shipping_address_2'] ) : '';
	$insert_data['shipping_city']         = isset( $post['shipping_city'] ) ? sanitize_text_field( $post['shipping_city'] ) : '';
	$insert_data['shipping_county']       = isset( $post['shipping_state'] ) ? sanitize_text_field( $post['shipping_state'] ) : '';

	return $insert_data;
}
add_filter( 'wcap_insert_guest_data_at_checkout', 'add_billing_shipping_details', 10, 2 );
add_filter( 'wcap_update_guest_data_at_checkout', 'add_billing_shipping_details', 10, 2 );

How can I add the Billing details saved in the Guest cart history table in the Billing Address in the Cart Details popup on the Abandoned Orders page?

Hook
wcap_cart_details_popup_billing

Usage:

add_filter( 'wcap_cart_details_popup_billing', 'add_user_billing_info', 10, 3 );

Example:

/**
* Add this code snippet in the "functions.php" file of your currently active theme.
*/
function add_user_billing_info( $user_details, $user_record, $cart_id ) {

	$user_details['billing_company']   = isset( $user_record[0]->billing_company_name ) && '' !== $user_record[0]->billing_company_name ? $user_record[0]->billing_company_name : '';
	$user_details['billing_address_1'] = isset( $user_record[0]->billing_address_1 ) && '' !== $user_record[0]->billing_address_1 ? $user_record[0]->billing_address_1 : '';
	$user_details['billing_address_2'] = isset( $user_record[0]->billing_address_2 ) && '' !== $user_record[0]->billing_address_2 ? $user_record[0]->billing_address_2 : '';
	$user_details['billing_city']      = isset( $user_record[0]->billing_city ) && '' !== $user_record[0]->billing_city ? $user_record[0]->billing_city : '';
	$user_details['billing_state']     = isset( $user_record[0]->billing_county ) && '' !== $user_record[0]->billing_county ? $user_record[0]->billing_county : '';
	$user_details['billing_country']   = isset( $user_record[0]->billing_country ) && '' !== $user_record[0]->billing_country ? $user_record[0]->billing_country : '';

	return $user_details;
}

add_filter( 'wcap_cart_details_popup_billing', 'add_user_billing_info', 10, 3 );

How can I add the shipping details saved in the Guest cart history table in the Shipping Address in the Cart Details popup on the Abandoned Orders page?

Hook
wcap_cart_details_popup_shipping

Usage:

add_filter( 'wcap_cart_details_popup_shipping', 'add_user_shipping_info', 10, 3 );

Example:

/**
* Add this code snippet in the "functions.php" file of your currently active theme.
*/
function add_user_shipping_info( $user_details, $user_record, $cart_id ) {

	$user_details['shipping_company']   = isset( $user_record[0]->shipping_company_name ) && '' !== $user_record[0]->shipping_company_name ? $user_record[0]->shipping_company_name : '';
	$user_details['shipping_address_1'] = isset( $user_record[0]->shipping_address_1 ) && '' !== $user_record[0]->shipping_address_1 ? $user_record[0]->shipping_address_1 : '';
	$user_details['shipping_address_2'] = isset( $user_record[0]->shipping_address_2 ) && '' !== $user_record[0]->shipping_address_2 ? $user_record[0]->shipping_address_2 : '';
	$user_details['shipping_city']      = isset( $user_record[0]->shipping_city ) && '' !== $user_record[0]->shipping_city ? $user_record[0]->shipping_city : '';
	$user_details['shipping_state']     = isset( $user_record[0]->shipping_county ) && '' !== $user_record[0]->shipping_county ? $user_record[0]->shipping_county : '';

	return $user_details;
}
add_filter( 'wcap_cart_details_popup_shipping', 'add_user_shipping_info', 10, 3 );

How can I add more data to be sent in the cart.cutoff webhook?

Hook
wcap_abandoned_cart_cutoff

Usage:

add_filter( 'wcap_abandoned_cart_cutoff', 'modify_webhook_data', 10, 1 );

Example:

/**
* Add this code snippet in the "functions.php" file of your currently active theme.
*/
function modify_webhook_data( $payload ) {
	$cart_id   = isset( $payload['data']['id'] ) && $payload['data']['id'] > 0 ? $payload['data']['id'] : 0;
	$user_id   = isset( $payload['data']['user_id'] ) && $payload['data']['user_id'] > 0 ? $payload['data']['user_id'] : 0;
	$user_type = isset( $payload['data']['user_type'] ) && $payload['data']['user_type'] > 0 ? $payload['data']['user_type'] : '';
	if ( (int) $cart_id > 0 && (int) $user_id > 0 ) {
		global $wpdb;

		if ( 'GUEST' === $user_type ) {
			$guest_details = $wpdb->get_row(
				$wpdb->prepare(
					'SELECT * FROM ' . WCAP_GUEST_CART_HISTORY_TABLE . ' WHERE id = %d',
					(int) $user_id
				)
			);
			$billing_details = array(
				'billing_company'   => isset( $guest_details->billing_company_name ) && '' !== $guest_details->billing_company_name ? $guest_details->billing_company_name : '',
				'billing_address_1' => isset( $guest_details->billing_address_1 ) && '' !== $guest_details->billing_address_1 ? $guest_details->billing_address_1 : '',
				'billing_address_2' => isset( $guest_details->billing_address_2 ) && '' !== $guest_details->billing_address_2 ? $guest_details->billing_address_2 : '',
				'billing_city'      => isset( $guest_details->billing_city ) && '' !== $guest_details->billing_city ? $guest_details->billing_city : '',
				'billing_state'     => isset( $guest_details->billing_county ) && '' !== $guest_details->billing_county ? $guest_details->billing_county : '',
				'billing_zipcode'   => isset( $guest_details->billing_zipcode ) && '' !== $guest_details->billing_zipcode ? $guest_details->billing_zipcode : '',
				'billing_country'   => isset( $guest_details->billing_country ) && '' !== $guest_details->billing_country ? $guest_details->billing_country : '',
			);
			$shipping_details = array(
				'shipping_company'   => isset( $guest_details->shipping_company_name ) && '' !== $guest_details->shipping_company_name ? $guest_details->shipping_company_name : '',
				'shipping_address_1' => isset( $guest_details->shipping_address_1 ) && '' !== $guest_details->shipping_address_1 ? $guest_details->shipping_address_1 : '',
				'shipping_address_2' => isset( $guest_details->shipping_address_2 ) && '' !== $guest_details->shipping_address_2 ? $guest_details->shipping_address_2 : '',
				'shipping_city'      => isset( $guest_details->shipping_city ) && '' !== $guest_details->shipping_city ? $guest_details->shipping_city : '',
				'shipping_state'     => isset( $guest_details->shipping_county ) && '' !== $guest_details->shipping_county ? $guest_details->shipping_county : '',
				'shipping_zipcode'   => isset( $guest_details->shipping_zipcode ) && '' !== $guest_details->shipping_zipcode ? $guest_details->shipping_zipcode : '',
			);
		} else {

			$billing_company_meta   = get_user_meta( $user_id, 'billing_company' );
			$billing_address_1_meta = get_user_meta( $user_id, 'billing_address_1' );
			$billing_address_2_meta = get_user_meta( $user_id, 'billing_address_2' );
			$billing_city_meta      = get_user_meta( $user_id, 'billing_city' );
			$billing_postcode_meta  = get_user_meta( $user_id, 'billing_postcode' );
			$billing_country_meta   = get_user_meta( $user_id, 'billing_country' );
			$billing_state_meta     = get_user_meta( $user_id, 'billing_state' );

			$billing_details = array(
				'billing_company'   => isset( $billing_company_meta[0] ) ? $billing_company_meta[0] : '',
				'billing_address_1' => isset( $billing_address_1_meta[0] ) ? $billing_address_1_meta[0] : '',
				'billing_address_2' => isset( $billing_address_2_meta[0] ) ? $billing_address_2_meta[0] : '',
				'billing_city'      => isset( $billing_city_meta[0] ) ? $billing_city_meta[0] : '',
				'billing_state'     => isset( $billing_state_meta[0] ) ? $billing_state_meta[0] : '',
				'billing_zipcode'   => isset( $billing_postcode_meta[0] ) ? $billing_postcode_meta[0] : '',
				'billing_country'   => isset( $billing_country_meta[0] ) ? $billing_country_meta[0] : '',
			);

			$shipping_company_meta   = get_user_meta( $user_id, 'shipping_company' );
			$shipping_address_1_meta = get_user_meta( $user_id, 'shipping_address_1' );
			$shipping_address_2_meta = get_user_meta( $user_id, 'shipping_address_2' );
			$shipping_city_meta      = get_user_meta( $user_id, 'shipping_city' );
			$shipping_postcode_meta  = get_user_meta( $user_id, 'shipping_postcode' );
			$shipping_country_meta   = get_user_meta( $user_id, 'shipping_country' );
			$shipping_state_meta     = get_user_meta( $user_id, 'shipping_state' );

			$shipping_details = array(
				'shipping_company'   => isset( $shipping_company_meta[0] ) ? $shipping_company_meta[0] : '',
				'shipping_address_1' => isset( $shipping_address_1_meta[0] ) ? $shipping_address_1_meta[0] : '',
				'shipping_address_2' => isset( $shipping_address_2_meta[0] ) ? $shipping_address_2_meta[0] : '',
				'shipping_city'      => isset( $shipping_city_meta[0] ) ? $shipping_city_meta[0] : '',
				'shipping_state'     => isset( $shipping_state_meta[0] ) ? $shipping_state_meta[0] : '',
				'shipping_zipcode'   => isset( $shipping_postcode_meta[0] ) ? $shipping_postcode_meta[0] : '',
			);
		}

		$payload['data']['billing']  = $billing_details;
		$payload['data']['shipping'] = $shipping_details;
	}
	return $payload;
}
add_filter( 'wcap_abandoned_cart_cutoff', 'modify_webhook_data', 10, 1 );
Was this article helpful to you? Yes No

How can we help?