webthings99
Forum Replies Created
-
Forum: Plugins
In reply to: [NIF (Num. de Contribuinte Português) for WooCommerce] NIF n?o apareceUpdate:
Anteriormente n?o conseguia aceder aos blocos porque o modo de edi??o do wordpress estava por omiss?o como “Editor clássico”. Por essa raz?o, n?o conseguia ver e editar os blocos na página de edi??o do checkout. Para poder editar tive que alterar a seguinte op??o:
Op??es -> Escrita -> Editor por omiss?o para todos os utilizadores: Editor de blocos
Desta forma já aparece o campo NIF na página de checkout.
- This reply was modified 8 months, 3 weeks ago by webthings99.
Forum: Plugins
In reply to: [NIF (Num. de Contribuinte Português) for WooCommerce] NIF n?o apareceBoa tarde, estou a ter o mesmo problema. A vers?o do woocommerce é 8.6.1 e do plugin a 6.2.
Mas n?o percebi como verificar isto: “Por favor verifique, ao editar a página de checkout se o bloco do NIF Português aparece como child block do bloco de checkout. Se n?o, adicione-o.”
Como posso fazer para adicionar o bloco?
Obrigado.
Mais uma vez agrade?o-lhe pela resposta, ainda para mais n?o sendo algo diretamente relacionado com plugin.
Em rela??o à inativa??o do email nas configura??es do Woocommerce, considerei n?o ser a solu??o ideal para o meu caso, porque o que eu pretendo realmente é ter um estado intermédio entre o estado “Aguarda a confirma??o de pagamento” e o estado “Em processamento”, ou seja continuarei a precisar do estado de “Em processamento” depois da encomeda passar pelo estado “Em análise”, e como tal precisarei também do email associado.
Contudo, para resolver este problema acabei por utilizar o filtro que tinha sugerido na sua primeira resposta, com esse filtro já n?o envia o mail de “Em processamento” quando o estado é “Em análise”. No entanto depois deparei-me com outro problema que era que ao mudar o estado manualmente de “Em análise” para “Em processamento” o woocommerce n?o enviava o email de “Em processamento” e acabei por adicionar outro Hook para resolver este problema. Deixo aqui a solu??o para possiveis interessados:
// Adiciona um filtro para modificar o status do pedido após o pagamento add_filter('woocommerce_payment_complete_order_status', 'custom_order_status_after_payment', 10, 2); // Fun??o para modificar o status do pedido após o pagamento function custom_order_status_after_payment($order_status, $order_id) { // Obtém o objeto da encomenda $order = wc_get_order($order_id); // Verifica se a encomenda n?o está no estado 'Em análise' if ($order->get_status() !== 'em-analise') { // Retorna o status 'Em análise' return 'em-analise'; } // Se já estiver no status em 'Em análise', mantém o status atual return $order_status; } // Adiciona um Hook para detetar quando o status do pedido é alterado manualmente add_action('woocommerce_order_status_changed', 'send_processing_email_on_manual_update', 10, 4); // Fun??o para enviar e-mail quando o status do pedido é manualmente alterado para 'Em processamento' function send_processing_email_on_manual_update($order_id, $old_status, $new_status, $order) { // Verifica se o status está a mudar para 'Em processamento' e se é uma atualiza??o manual if ($new_status === 'processing' && !empty($_POST['_wpnonce'])) { // Envia o e-mail de 'Em processamento' WC()->mailer()->emails['WC_Email_Customer_Processing_Order']->trigger($order_id); } }
Obrigado pela resposta rápida e pelo esclarecimento.
Após uma pesquisa mais aprofundada encontrei este filtro que também faz aquilo que necessitava, no entanto envia na mesma o email de “Em processamento”, algo que ainda estou a tentar solucionar.
Deixo aqui o filtro para o caso de ser útil a alguém no futuro.
/** * Alterar estado da encomenda para 'Em análise' após Pagamento */ add_action('woocommerce_payment_complete', 'custom_order_status_after_payment'); function custom_order_status_after_payment($order_id) { // Obtém o objeto da encomenda $order = wc_get_order($order_id); // Verifica se a encomenda já n?o está no estado 'Em análise' if ($order->get_status() !== 'em-analise') { // Atualiza o status para 'Em análise' $order->update_status('em-analise'); } }