Update_Address_Handler::handle_request( $submission )

Summary

No summary available.

Source

File: src/BigCommerce/Forms/Update_Address_Handler.php

	public function handle_request( $submission ) {
		if ( ! $this->should_handle_request( $submission ) ) {
			return;
		}

		$user   = wp_get_current_user();
		$errors = $this->validate_submission( $submission, $user );

		if ( count( $errors->get_error_codes() ) > 0 ) {
			do_action( 'bigcommerce/form/error', $errors, $submission );

			return;
		}

		$customer   = new Customer( get_current_user_id() );
		$address_id = $submission[ 'bc-address' ][ 'id' ];
		$address    = $this->get_address( $submission[ 'bc-address' ] );

		if ( empty( $address_id ) ) {
			$success = $customer->add_address( $address );
		} else {
			$success = $customer->update_address( $address_id, $address );
		}

		if ( ! $success ) {
			$errors->add( 'api_error', __( 'There was an error saving your request. Please try again.', 'bigcommerce' ) );
			do_action( 'bigcommerce/form/error', $errors, $submission );

			return;
		}

		if ( empty( $address_id ) ) {
			/**
			 * Filters address form created message.
			 *
			 * @param string $message Message.
			 */
			$message = apply_filters( 'bigcommerce/form/address/created_message', __( 'Address created.', 'bigcommerce' ) );
			do_action( 'bigcommerce/form/success', $message, $submission, null, [ 'key' => 'address_created' ] );
		} else {
			/**
			 * Filters address form updated message.
			 *
			 * @param string $message Message.
			 */
			$message = apply_filters( 'bigcommerce/form/address/updated_message', __( 'Address saved.', 'bigcommerce' ) );
			do_action( 'bigcommerce/form/success', $message, $submission, null, [ 'key' => 'address_saved' ] );
		}
	}


User Contributed Notes

You must log in before being able to contribute a note or feedback.