Forum Replies Created

Viewing 3 replies - 1 through 3 (of 3 total)
  • Ainda não consegui resolver o problema completamente, mas pelo menos contornei ele para um site que está no ar e precisa do extra checkout fields.

    Aparentemente o problema está na integração com a função wc_cart_totals_shipping_html() no arquivo includes/wc-cart-functions. A função get_formatted_address() é chamada em um ponto onde os valores do extra-checkout-fields nao estao definidos ainda, ocasionando uma exceção que não permite finalizar a compra (no meu site pelo menos).

    O que fiz momentaneamente foi retirar a chamada dessa função na linha abaixo (trocando por uma string vazia). No meu caso não tem problema, pois o template cart/cart-shipping.php já era customizado então era um valor que eu nem usava, mas é bom verificar o resultado caso a caso.

    A linha

    'formatted_destination' => WC()->countries->get_formatted_address( $package['destination'], ', ' ),

    Ficou assim

    'formatted_destination' => "",

    Pelo que vi o erro apareceu no woocommerce 3.5.

    Claro que isso é temporário, pois cada vez que atualizar o woocommerce o problema irá retornar. De toda forma pelo menos ganha um tempo até acharmos uma solução melhor.

    Thread Starter faacsousa

    (@faacsousa)

    I’m dumb. This isn’t a support question so I’m migrating it to github. Sorry

    Another option (if WP >= 4.9) is to use the filter wp_new_user_notification_email. (This will use the woocommerce email for all new users which use the default wordpress mail)

    In my case I dont need auto generated passwords, but you can adapt to your specific case.

    public function wp_new_user_notification_email($wp_new_user_notification_email, $user, $blogname) {
    
                if (class_exists('WooCommerce') && $user) {
                    $wc_emails = WC_Emails::instance();
                    $email = $wc_emails->emails['WC_Email_Customer_New_Account'];
                    /* @var $email WC_Email_Customer_New_Account */
    
                    // Set object variables so the email can use it
                    $email->object = $user;
                    $email->user_pass = '';
                    $email->user_login = stripslashes($user->user_login);
                    $email->user_email = stripslashes($user->user_email);
                    $email->recipient = $email->user_email;
                    $email->password_generated = false;
    
                    $wp_new_user_notification_email = array(
                        'to' => $user->user_email,
                        'subject' => $email->get_subject(),
                        'message' => $email->get_content_html(),
                        'headers' => $email->get_headers(),
                    );
                }
                return $wp_new_user_notification_email;
            }
    • This reply was modified 8 years, 1 month ago by faacsousa.
Viewing 3 replies - 1 through 3 (of 3 total)