autoship_add_tokenized_payment_method (function)

(src > payments.php) A router for adding a method in QPilot and is hooked into the  woocommerce_payment_token_added action hook. It takes the token_id from the hook. Has filters and actions to allow for customization and takes $token_id as its parameter.

Function

/**
 * Calls the function to add a payment method to QPilot
 * Based on Token.  Also can ve extended using {@see autoship_add_tokenized_payment_method_extend_gateway}
 *
 * @param int $token_id. A WC_Payment_Token_CC token id.
 * @param object $response
 *
 * @return bool|stdClass|WP_Error The Payment Method object on success, WP_Error on failure, false on not needed.
 */
function autoship_add_tokenized_payment_method( $token_id ){

  // Get the token
  $token = WC_Payment_Tokens::get( $token_id );

  // Allow users to override the gateway id.
  $gateway_id = apply_filters('autoship_add_tokenized_payment_method_gateway_id', $token->get_gateway_id(), $token_id, $token );

  // Get the current gateway id types. & Allow users to extend based on id & token.
  $gateway_id_types = apply_filters('autoship_add_tokenized_payment_method_extend_gateway_types', autoship_standard_gateway_id_types(), $gateway_id, $token );

  if ( !array_key_exists( $gateway_id, $gateway_id_types ) )
  return false;

  /**
  * Add an action for Customers to call their own payment gateway add method.
  * @hooked autoship_add_tokenized_payment_method() - 11
  */
  do_action( 'autoship_add_tokenized_payment_method_extend_gateway', $gateway_id, $gateway_id_types, $token );

  // Call the Autoship general add payment function.
  return autoship_add_general_payment_method( $token );

}