WooCommerce — ошибка при создании аккаунта при оформлении заказа

Я строю интернет-магазин, используя WooCommerce. Мой адрес настроен так:
1. платежный адрес
2. флажок: создать учетную запись (если вы не вошли в систему)
3. флажок: отправить по другому адресу

Поэтому, когда клиент устанавливает флажок «создать учетную запись», он должен ввести пароль. Я хочу использовать информацию адреса выставления счета как для выставления счета, так и для адреса доставки (по умолчанию). Однако, когда клиент теперь устанавливает флажок «создать учетную запись» и оставляет флажок «отправить по другому адресу» незаполненным, в форме выдается сообщение о том, что клиент также должен заполнить поля адреса доставки. Часть моего кода проверки ниже (поля адреса выставления счета) & флажок создать аккаунт; комментируйте больше кода, пожалуйста).

Я надеюсь, что у кого-то есть решение. Благодарю.

<div class="woocommerce-billing-fields">
<?php if ( WC()->cart->ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>

<h2><?php _e( 'Billing &amp; Shipping', 'woocommerce' ); ?></h2>
<?php else : ?>
<?php endif; ?>

<?php do_action( 'woocommerce_before_checkout_billing_form', $checkout ); ?>

<?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>

<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>

<?php endforeach; ?>

<?php do_action('woocommerce_after_checkout_billing_form', $checkout ); ?>

<?php if ( ! is_user_logged_in() && $checkout->enable_signup ) : ?>
<div class="create-account-wrapper">
<?php if ( $checkout->enable_guest_checkout ) : ?>

<p class="form-row form-row-wide create-account-title walsheim checkbox-wrapper">
<input class="input-checkbox" id="createaccount" <?php checked( ( true === $checkout->get_value( 'createaccount' ) || ( true === apply_filters( 'woocommerce_create_account_default_checked', false ) ) ), true) ?> type="checkbox" name="createaccount" value="1" /> <label for="createaccount" class="checkbox"><?php _e( 'create an account', 'woocommerce' ); ?></label>
</p>

<?php endif; ?>

<?php do_action( 'woocommerce_before_checkout_registration_form', $checkout ); ?>

<?php if ( ! empty( $checkout->checkout_fields['account'] ) ) : ?>

<div class="create-account create-account-content">

<p><?php _e( 'Create an account by entering the information below. If you are a returning customer please login at the top of the page.', 'woocommerce' ); ?></p>

<?php foreach ( $checkout->checkout_fields['account'] as $key => $field ) : ?>

<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>

<?php endforeach; ?>

<div class="clear"></div>

</div>

<?php endif; ?>

<?php do_action( 'woocommerce_after_checkout_registration_form', $checkout ); ?>
</div>

<?php endif; ?>
</div>

1

Решение

Есть опция в woocoomerce Страница настроек под shipping вкладка с надписью Shipping Destination, Попробуйте выбрать Default to billing address опции.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]