Limpeza do banco de dados após alterações de conta
↑ Back to topSempre que as chaves da conta Stripe.com (chave de API publicável e/ou chave de API secreta) são alteradas, pode ser necessária uma limpeza do banco de dados. O método de pagamento armazena vários identificadores (cliente, cartão, fonte, etc.) para vincular objetos locais com o Stripe, mas esses objetos são específicos da conta. Se você não realizar essa limpeza, a loja poderá ter compras com falhas.
Antes da limpeza
↑ Back to topAntes de continuar, entre em contato com o Stripe para verificar se os métodos de pagamento e os clientes existentes podem ser transferidos para a nova conta.
Limpeza
↑ Back to topDELETE FROM `wp_usermeta`
WHERE meta_key IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id' );
DELETE tokenmeta FROM `wp_woocommerce_payment_tokenmeta` tokenmeta
INNER JOIN `wp_woocommerce_payment_tokens` ON `wp_woocommerce_payment_tokens`.`token_id` = tokenmeta.`payment_token_id`
WHERE `wp_woocommerce_payment_tokens`.`gateway_id` = 'stripe';
DELETE FROM `wp_woocommerce_payment_tokens` WHERE gateway_id='stripe';
Limpeza ao usar um WordPress Multisite
↑ Back to topEste snippet é semelhante, mas também limpa os valores específicos do site.
Use esse snippet para cada site da rede na qual é necessário a limpeza. Substitua wp_999_
pelo prefixo do site. OBS: O site principal da rede não usa um número no prefixo e, portanto, você precisa simplesmente usar wp_
em vez de wp_999_
.
DELETE FROM `wp_usermeta`
WHERE meta_key IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id', 'wp_999__stripe_customer_id' );
DELETE tokenmeta FROM `wp_999_woocommerce_payment_tokenmeta` tokenmeta
INNER JOIN `wp_999_woocommerce_payment_tokens` ON `wp_999_woocommerce_payment_tokens`.`token_id` = tokenmeta.`payment_token_id`
WHERE `wp_999_woocommerce_payment_tokens`.`gateway_id` = 'stripe';
DELETE FROM `wp_999_woocommerce_payment_tokens` WHERE gateway_id='stripe';
Conflitos entre sites em uma rede (multisite)
↑ Back to topAs configurações multisite possuem suporte para o método de pagamento desde a versão 4.3.2
. No entanto, se o método de pagamento tiver sido usado em um site simples, no qual foi convertido posteriormente em uma rede multisite, você pode ter erros No such customer
(não existe tal cliente) ou erros com os cartões salvos.
Para corrigir esses erros, use o seguinte snippet de SQL e certifique-se de substituir wp_
(sublinhado único) pelo prefixo da tabela do seu banco de dados:
UPDATE `wp_usermeta`
SET `meta_key` = CONCAT( 'wp_', `meta_key` )
WHERE `meta_key` IN ( '_stripe_customer_id', '_stripe_source_id', '_stripe_card_id' );
Isso irá garantir que os IDs de cliente existentes no site/blog principal não sejam usados como valores de fallback (valores padrão de substituição em caso de falha) para outros sites.