• Вставить значения из JSON в таблицу?

    AndiMandi
    @AndiMandi Автор вопроса
    Единственное, в конце формируется лишняя строка, а так все идеально. Ты просто сделал мой вечер
    Написано
  • Вставить значения из JSON в таблицу?

    AndiMandi
    @AndiMandi Автор вопроса
    <style type="text/css">
    .tg {border-collapse:collapse;border-spacing:0;}
    .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
    overflow:hidden;padding:10px 5px;word-break:normal;}
    .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
    font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
    .tg .tg-s9fd{background-color:#E0FFE0;border-color:inherit;text-align:center;vertical-align:top}
    .tg .tg-oqqy{background-color:#E0FFE0;border-color:inherit;font-weight:bold;text-align:center;vertical-align:top}
    .tg .tg-l38m{background-color:#FFF;border-color:inherit;text-align:right;vertical-align:top}
    .tg .tg-fyfk{background-color:#FFF;border-color:inherit;font-weight:bold;text-align:center;vertical-align:top}
    .tg .tg-nbj5{background-color:#FFF;border-color:inherit;text-align:center;vertical-align:top}
    .tg .tg-jxgv{background-color:#FFF;border-color:inherit;text-align:left;vertical-align:top}
    .tg .tg-pdeq{background-color:#FFF;border-color:inherit;font-weight:bold;text-align:left;vertical-align:top}
    .tg .tg-u0ix{background-color:#FFF;border-color:inherit;font-weight:bold;text-align:right;vertical-align:top}
    .tg .tg-w5ex{background-color:#FFFBF0;border-color:inherit;text-align:left;vertical-align:top}
    .tg .tg-g0qq{background-color:#FFFBF0;border-color:inherit;text-align:right;vertical-align:top}
    .tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
    .tg .tg-dvpl{border-color:inherit;text-align:right;vertical-align:top}
    </style>
    Написано
  • Ошибка PHP: string-string?

    AndiMandi
    @AndiMandi Автор вопроса
    Stalker_RED, смотрите в чем мем. Вот у меня поле пустое ($date = get_the_author_meta( '_birthday' ,$user_id);). Мы же не можем отнять дату от пустого поля по сути дела, до меня только что дошло. Как тогда быть?
  • Как вывести значения ACF Вордпресс в модальном окне?

    Артем, окей. Тогда приведу пример из своего сайта.
    <div class="row div_shoe">
            <?php
    	$images = get_field('three_dress');
    	foreach ($images as $image):?>
    		<div class="col-4 col-phone fash">
    			<a href="<?php the_permalink(); ?>">
    				<img class="three_dress" height="500" width="360" src="<?php echo $image['sizes']['large']; ?>" alt="<?php echo $image['alt']; ?>">
    			</a>
    		</div>
    	<?php endforeach;?>
    </div>

    У меня лично вот так вывод галереи через ACF работает
  • Как вывести значения ACF Вордпресс в модальном окне?

    Артем, Галерея немного по-другому выводится. Вот как указано в документации:
    <?php 
    $images = get_field('gallery'); //берем наше поле
    $size = 'full'; // (thumbnail, medium, large, full or custom size) (задаем размер изображения)
    if( $images ): ?> 
        <ul>
            <?php foreach( $images as $image_id ): ?>
                <li>
                    <?php echo wp_get_attachment_image( $image_id, $size ); ?> //и выводим его (необязательно здесь может быть li, можно использовать, например, div)
                </li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>
  • Как обновить поля с carbon fields?

    AndiMandi
    @AndiMandi Автор вопроса
    Файл-обработчик?
    spoiler

    <?php
    $nonce = isset($_POST['nonce']) ? $_POST['nonce'] : ''; // сначала возьмем скрытое поле nonce
    if (!wp_verify_nonce($nonce, 'edit_profile_nonce')) wp_send_json_error(array('message' => 'Данные присланные со сторонней страницы ', 'redirect' => false)); // проверим его, и если вернулся фолс - исаользуем wp_send_json_error и умираем
    
    if (!is_user_logged_in()) wp_send_json_error(array('message' => 'Вы не залогинены.', 'redirect' => false)); // если юзера как то разлогинело, то ничего не делаем
    
    global $current_user; // получим текущие данные пользователя
    get_currentuserinfo(); 
    
    $user = get_user_by('login', $current_user->user_login);
    $user_id = $user->ID;
    
    // теперь возьмем все поля и рассуем по переменным
    $user_email = isset($_POST['user_email']) ? $_POST['user_email'] : '';
    $first_name = isset($_POST['first_name']) ? $_POST['first_name'] : '';
    $last_name = isset($_POST['last_name']) ? $_POST['last_name'] : '';
    $post = isset($_POST['_post']) ? $_POST['_post'] : ''; (это)
    $age = isset($_POST['_age']) ? $_POST['_age'] : ''; (это)
    $number = iseet($_POST['_number']) ? $_POST['_number'] : ''; (и это. Без этих трех переменных все работает прекрасно.)
    
    
    $user_url = isset($_POST['user_url']) ? $_POST['user_url'] : '';
    $description = isset($_POST['description']) ? $_POST['description'] : ''; // стандртное мета поле у юзера
    
    $pass1 = isset($_POST['pass1']) ? $_POST['pass1'] : ''; // поля с паролями
    $pass2 = isset($_POST['pass2']) ? $_POST['pass2'] : '';
    $current_pass = isset($_POST['current_pass']) ? $_POST['current_pass'] : '';
    
    $redirect_to = isset($_POST['redirect_to']) ? $_POST['redirect_to'] : false;
    
    // теперь проверим обязательные поля на заполненность и валидность - у нас это только поле с почтой
    if (!$user_email) wp_send_json_error(array('message' => 'Email - обязательное поле.', 'redirect' => false));
    if (!preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $user_email)) wp_send_json_error(array('message' => 'Ошибочный формат email', 'redirect' => false));
    
    
    
    if ($current_user->user_email != $user_email && get_user_by('email', $user_email)) wp_send_json_error(array('message' => 'Пользователь с таким email уже существует', 'redirect' => false)); // если попытались изменить email то проверим что новый email не занят
    
    $fields = array(); // подготовим массив для обновления данных пользователя
    $fields['ID'] = $current_user->ID;
    $fields['user_email'] = $user_email;
    $fields['first_name'] = $first_name;
    $fields['last_name'] = $last_name;
    $fields['_post'] = $post;
    $fields['_age'] = $age;
    $fields['_number'] = $number;
    
    
    if ($pass1 && $pass2 && $current_pass) { // если заполнены все 3 поля с паролями
        if ($pass1 != $pass2) wp_send_json_error(array('message' => 'Пароли не совпадают', 'redirect' => false)); // проверим что новые пароли совпадают
        if (strlen($pass1) < 4) wp_send_json_error(array('message' => 'Слишком короткий пароль', 'redirect' => false)); // проверим длину пароля
        if (false !== strpos(wp_unslash($pass1), "\\" ) ) wp_send_json_error(array('message' => 'Пароль не может содержать обратные слэши "\\"', 'redirect' => false)); // это для безопасности
        if (!wp_check_password($current_pass, $current_user->user_pass, $current_user->ID)) wp_send_json_error(array('message' => 'Текущий пароль не верный.', 'redirect' => false)); // проверим что текущий пароль введен правильно
        $fields['user_pass'] = esc_attr($pass1); // добавим новый пароль в массив данных для изменения
    } elseif ($pass1 || $pass2 || $current_pass) { // если были заполнены не все поля с паролями
        wp_send_json_error(array('message' => 'Для изменения пароля заполните все поля с паролями.', 'redirect' => false)); // покажим ошибку
    }
    
    // теперь проверим все ли ок с новой аватаркой, если она передана
    if (isset($_FILES['avatar'])) { // если в глобальном массиве $_FILES есть элемент с индексом avatar
        if ($_FILES['avatar']['error']) wp_send_json_error(array('message' => "Ошибка загрузки: " . $_FILES['avatar']['error'].". (".$_FILES['avatar']['name'].") ", 'redirect' => false)); // если произошла серверная ошибка при загрузке файла
        $type = $_FILES['avatar']['type']; // теперь возьмем расширение файла
        if (($type != "image/jpg") && ($type != "image/jpeg") && ($type != "image/png")) wp_send_json_error(array('message' => "Формат файла может быть только jpg или png. (".$_FILES['avatar']['name'].")", 'redirect' => false)); // если формат плохой
        
    
        // если скрипт до сих пор не умер то продолжаем
        require_once(ABSPATH . "wp-admin" . '/includes/image.php');
        require_once(ABSPATH . "wp-admin" . '/includes/file.php');
        require_once(ABSPATH . "wp-admin" . '/includes/media.php');
    
        $attach_id_img = media_handle_upload('avatar', 0); // пробуем залить файл в медиабиблиотеку и получить его id, первый аргумент это индекс файла в глобальном массиве $_FILES, у нас это avatar, второй это id поста к чему файл привязывается, нам это не надо поэтому 0
        
        if (is_wp_error($attach_id_img)) wp_send_json_error(array('message' => "Что-то не так с загрузкой аватарки.", 'redirect' => false)); // если добавление в медиабиблиотеку вернуло ошибку
    
        $avatar = array(); // подготовим массив с данными для привязки аватарки к юзеру (только для плагина simple local avatars)
        $avatar['media_id'] = $attach_id_img; // сюда id аватарки
        $avatar['full'] = wp_get_attachment_url($attach_id_img); // а сюда её url
        
        update_user_meta($current_user->ID, 'simple_local_avatar', $avatar ); // привяжем новый аватар
    
    }
    
    update_user_meta($current_user->ID, 'description', $description); // обновим мета поле "Обо мне", остальные мета поля обновляются по такому же принципу
    
    $update_user = wp_update_user($fields); // обновляем данные юзера
    
    if (is_wp_error($update_user)) wp_send_json_error(array('message' => 'Системная ошибка: '.$update_user->get_error_code(), 'redirect' => false)); // если что-то пошло не так
    
    wp_send_json_success(array('message' => 'Данные успешно изменены. Обновляемся...', 'redirect' => $redirect_to)); // если все ок, напишем об этом и обновимся
    ?>

  • При вызове функции wp_redirect() выходит ошибка ERR_TOO_MANY_REDIRECT?

    AndiMandi
    @AndiMandi Автор вопроса
    pantsarny, о, и вправду не так… Спасибо за уточнение
  • При вызове функции wp_redirect() выходит ошибка ERR_TOO_MANY_REDIRECT?

    AndiMandi
    @AndiMandi Автор вопроса
    pantsarny, is_user_logged_in - это функция, проверяющая авторизацию пользователя. Посмотрите документацию WordPress, про него все написано)
  • Работа с CSV-файлами в Python?

    AndiMandi
    @AndiMandi Автор вопроса
    Вроде со всем разобрался, но не понимаю, как сделать последний пункт задания, а конкретно изменение файла.
  • Калькулятор систем счисления?

    AndiMandi
    @AndiMandi Автор вопроса
    Алан Гибизов, Похоже, что вы меня не так поняли. Код я писал сам, но скопировал его с вк своей страницы. Код рабочий, но есть момент, который я не могу исправить
  • Вывод видео по нажатию на последнюю картинку?

    AndiMandi
    @AndiMandi Автор вопроса
    он ругается((
    (index):1494 Uncaught TypeError: Cannot set property 'onclick' of null
    изменено: он не ругается, он теперь вообще ничего не делает (то есть, нажимаю на последнюю картинку и ничего не происходит)
  • Почему функция работает только в консоли?

    AndiMandi
    @AndiMandi Автор вопроса
    Я использовал 1 способ и у меня через $ не сработало. Заменил его на jQuery и все сработало, как надо)
    Огромное спасибо за решение проблемы!
  • Правильный вывод форм доставки товара?

    AndiMandi
    @AndiMandi Автор вопроса
    Я имею ввиду добавить классы и значения WooCommerce к кастомной форме
    Например, к классу 'wrtadres' добавить классы и значения: "form-row form-row-first validate-required thwcfe-input-field-wrapper validate-required" id="billing_first_name_field" data-priority="30" data-rules="" data-rules-action="" data-validations="validate-required"
  • Вывод товаров "3 в ряд"?

    AndiMandi
    @AndiMandi Автор вопроса
    Спасибо огромное)