Ответы пользователя по тегу WordPress
  • Ошибка при переходе на php8 WordPress, Как исправить?

    @ashfedor Автор вопроса
    Напишу на всякий случай может кому-то пригодится.
    Все оказалось проще чем обычно!)
    На этом сервере в 8 версии не поддерживается краткое <?
    нужно писать полностью <?php
    Ответ написан
    2 комментария
  • Как запустить модальное окно с Спасибо?

    @ashfedor Автор вопроса
    Все намного проще чем казалось! может кому то понадобится
    вот хук
    function wpcf7_modal_mailsent_js() {
      wp_enqueue_script( 'sweetalert', 'https://unpkg.com/sweetalert/dist/sweetalert.min.js' );
    }
    
    /**
     * Выводит на экран модальное окно при успешной отправки формы.
     *
     * @return void
     */
    function wpcf7_modal_mailsent_js_inline() {
      ?>
      <script>
        // Срабатывает при успешной отправке формы.
        document.addEventListener('wpcf7mailsent', function (response) {
          MicroModal.close('modal-1')
          // Запускает модальное окно.
          MicroModal.show('modal-2');
        }, false);
      </script>
    
      <style>
          .wpcf7-mail-sent-ok {
              display: none !important;
          }
      </style>
      <?php
    }
    Ответ написан
    Комментировать
  • В Woocomerce есть у пользователя поле телефон. а как его вывести для регистрации не подскажете?

    @ashfedor Автор вопроса
    Нашел на просторах решение. Внедрил вроде хорошо работает!
    ## --- FOR CHECKOUT --- ##

    // Checkout billing phone validation (Checking length)
    add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
    function my_custom_checkout_field_process() {
    if ( $_POST['billing_phone'] && strlen($_POST['billing_phone']) < 10 )
    wc_add_notice( __('Please type a correct phone number…', 'woocommerce'), 'error' );
    }

    ## --- FOR CUSTOM REGISTRATION FORM --- ##

    // Add custom fields to registration form.
    add_action('woocommerce_register_form_start', 'text_domain_woo_reg_form_fields');
    function text_domain_woo_reg_form_fields() {
    ?>


    <?php _e('First name', 'woocommerce'); ?>*



    <?php _e('Last name', 'woocommerce'); ?>*




    <?php _e( 'Phone', 'woocommerce' ); ?>


    *



    <?php
    }

    // Checking & validation of custom fields in registration form.
    add_action('woocommerce_register_post', 'text_domain_woo_validate_reg_form_fields', 10, 3);
    function text_domain_woo_validate_reg_form_fields( $username, $email, $validation_errors ) {
    if (isset($_POST['billing_first_name']) && empty($_POST['billing_first_name'])) {
    $validation_errors->add('billing_first_name_error', __('İsim alanı zorunludur! / Name field is required!', 'woocommerce'));
    }
    if (isset($_POST['billing_last_name']) && empty($_POST['billing_last_name'])) {
    $validation_errors->add('billing_last_name_error', __('Soyisim alanı zorunludur! / Surname field is required!', 'woocommerce'));
    }
    if (isset($_POST['billing_phone']) && empty($_POST['billing_phone'])) {
    $validation_errors->add('billing_phone_error', __('Telefon alanı zorunludur! / Phone field is required!', 'woocommerce'));
    }

    // ==> CHECKING PHONE LENGTH (10 character minimal) <==
    if (isset($_POST['billing_phone']) && strlen($_POST['billing_phone']) < 10 ) {
    $validation_errors->add('billing_phone_error', __('Please type a correct phone number…', 'woocommerce'));
    }
    return $validation_errors;
    }

    // Add custom fields to registration form.
    add_action( 'woocommerce_created_customer', 'custom_save_extra_register_fields' ); // <==== Missing
    function custom_save_extra_register_fields($customer_id) {
    //First name field
    if (isset($_POST['billing_first_name'])) {
    update_user_meta($customer_id, 'first_name', sanitize_text_field($_POST['billing_first_name']));
    update_user_meta($customer_id, 'billing_first_name', sanitize_text_field($_POST['billing_first_name']));
    }
    //Last name field
    if (isset($_POST['billing_last_name'])) {
    update_user_meta($customer_id, 'last_name', sanitize_text_field($_POST['billing_last_name']));
    update_user_meta($customer_id, 'billing_last_name', sanitize_text_field($_POST['billing_last_name']));
    }
    //Phone field
    if (isset($_POST['billing_phone'])) {
    update_user_meta($customer_id, 'phone', sanitize_text_field($_POST['billing_phone']));
    update_user_meta($customer_id, 'billing_phone', sanitize_text_field($_POST['billing_phone']));
    }
    }
    Ответ написан
    Комментировать