WC_Payment_Tokens::set_users_default PHP Method

set_users_default() public static method

Loops through all of a users payment tokens and sets is_default to false for all but a specific token.
Since: 2.6.0
public static set_users_default ( integer $user_id, integer $token_id )
$user_id integer User to set a default for
$token_id integer The ID of the token that should be default
    public static function set_users_default($user_id, $token_id)
    {
        $data_store = WC_Data_Store::load('payment-token');
        $users_tokens = self::get_customer_tokens($user_id);
        foreach ($users_tokens as $token) {
            if ($token_id === $token->get_id()) {
                $data_store->set_default_status($token->get_id(), true);
                do_action('woocommerce_payment_token_set_default', $token_id, $token);
            } else {
                $data_store->set_default_status($token->get_id(), false);
            }
        }
    }

Usage Example

 /**
  * Update a payment token.
  *
  * @since 2.7.0
  * @param WC_Payment_Token $token
  */
 public function update(&$token)
 {
     if (false === $token->validate()) {
         throw new Exception(__('Invalid or missing payment token fields.', 'woocommerce'));
     }
     global $wpdb;
     $payment_token_data = array('gateway_id' => $token->get_gateway_id('edit'), 'token' => $token->get_token('edit'), 'user_id' => $token->get_user_id('edit'), 'type' => $token->get_type('edit'));
     $wpdb->update($wpdb->prefix . 'woocommerce_payment_tokens', $payment_token_data, array('token_id' => $token->get_id('edit')));
     $token->save_meta_data();
     $token->apply_changes();
     // Make sure all other tokens are not set to default
     if ($token->is_default() && $token->get_user_id() > 0) {
         WC_Payment_Tokens::set_users_default($token->get_user_id(), $token->get_id());
     }
     do_action('woocommerce_payment_token_updated', $token->get_id());
 }
All Usage Examples Of WC_Payment_Tokens::set_users_default