/** * Read a token from the database. * * @since 2.7.0 * @param WC_Payment_Token $token */ public function read(&$token) { global $wpdb; if ($data = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}woocommerce_payment_tokens WHERE token_id = %d LIMIT 1;", $token->get_id()))) { $token->set_props(array('token' => $data->token, 'user_id' => $data->user_id, 'gateway_id' => $data->gateway_id, 'default' => $data->is_default)); $token->read_meta_data(); $token->set_object_read(true); do_action('woocommerce_payment_token_loaded', $token); } else { throw new Exception(__('Invalid payment token.', 'woocommerce')); } }