Задать вопрос
Контакты
Местоположение
Россия, Красноярский край, Красноярск

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (8)

Лучшие ответы пользователя

Все ответы (30)
  • Как сделать нормальное оформление заказа woocommerce?

    В Woo оформление заказа устроено так -

    у вас есть страница "Оформление заказа", на которую с помощью шорткода [woocommerce_checkout] выводится компонент checkout. Это вы можете увидеть, открыв в админке данную страницу.

    Компонент checkout "собирается" из нескольких php файлов. Они находятся в каталоге плагина - /wp-content/plugins/woocommerce/templates/checkout. Файлов более 10 шт., каждый из которых отвечает за свою "задачу"

    То, как у вас выводятся поля данных, в каком порядке и в каком составе, нужно править в одном или нескольких файлах. В вашем случае нужно смотреть файлы form-billing.php и form-checkout.php. Возможно еще какие-то, бывает по разному.

    Важно! В самом каталоге плагина файлы не правим! . Они могут быть переписаны при обновлении плагина. Да и вообще так не принято делать. Нужно в корне вашей темы создать каталог woocommerce, в нем подкаталог checkout и в него скопировать файлы из /wp-content/plugins/woocommerce/templates/checkout. И уже там править.

    Как и что править конкретно - тут вопрос всегда индивидуальный. Поэтому, сложно сказать, есть ли плагин под вашу задачу. Обычно это делаем вручную.
    Ответ написан
    Комментировать
  • Добрый день, где храняться в базе данных информация о подписках в woocomerce subscription?

    Woocommerce Subscription работает с объектами класса WC_Subscription (не только с ним, но это базовый класс, глубже копать вам не нужно), который наследуется от WC_Order:

    class WC_Subscription extends WC_Order {...}

    соответственно, данные хранятся в таблицах woocommerce.

    Напрямую через запросы к таблицам вы работать с подписками конечно можете, но это как-бы не очень хорошая идея. Чтобы получить данные подписок пользователя вам достаточно вызвать функцию wcs_get_users_subscriptions($user_id) и передать в неё id пользователя. Перед этим, желательно проверить, а есть ли у пользователя вообще подписки - wcs_user_has_subscription($user_id).

    Пример:

    // каким-то образом получаете id пользователя
    $user_id = get_current_user_id();
    
    // далее проверяете, есть ли у пользователя подписки
    if (wcs_user_has_subscription($user_id)) {
            // получаете массив объектов WC_Subscription
            $users_subscriptions =  wcs_get_users_subscriptions($user_id);
    // далее, вытаскиваете из объектов всё, что вам нужно. Здесь я привёл лишь некоторые данные из возможных. На самом деле их там гораздо больше. Версия WC Subscription 5.6.0.
            $result = array_map(
                function($subscription) {
                    return [
                        'id'                    => $subscription->get_id(),
                        'version'               => $subscription->get_version(),
                        'customer_id'           => $subscription->get_customer_id(),
                        'status'                => $subscription->get_status(),
                        'currency'              => $subscription->get_currency(),
                        'date_created'          => $subscription->get_date( 'date_created' ),
                        'next_payment'          => $subscription->get_date( 'next_payment' ),
                        'date_end'              => $subscription->get_date( 'end' ),
                        'date_trial_end'        => $subscription->get_date( 'trial_end' ),
                        'payment_method'        => $subscription->get_payment_method_title(),
                        'total'                 => $subscription->get_total(),
                        'discount_total'        => $subscription->get_discount_total(),
                        'shipping_total'        => $subscription->get_shipping_total()
                    ];
                },
                $users_subscriptions
            );
            
            echo '<pre>';
            print_r($result);
            echo '</pre>';
        }


    Для получения данных профиля пользователя вам вполне достаточно функции get_user_by('ID', $user_id).
    Для получения ссылки на аватар - get_avatar_url($user_id)
    Ответ написан
  • Как отредактировать HTML блок, который содержит переменная в JS?

    Вместо переменной, которая возвращает html-блок, можете создать функцию, которая будет возвращать тот-же блок, а в аргументы функции передавайте значения для классов. Для html используйте шаблонную строку -
    https://developer.mozilla.org/ru/docs/Web/JavaScri...

    Примерно так -

    function getMyHTML(className) {
       return `<td class="${className}">...</td>`;
    }
    
    const my_html = getMyHTML("flags");
    Ответ написан
    Комментировать
  • Как менять значение при разном размере экрана?

    Можно получать текущую ширину окна или документа, например, если с шириной окна -

    let responsiveUnder = 1000;
    if ( window.screen.width < 900 ) {
            responsiveUnder = 900;
         // ...
    }


    далее, передаете в слайдер переменную responsiveUnder...
    Ответ написан
    1 комментарий
  • Как работать с данными плагина на Wordpress?

    Плагин - это "творение" рук конкретных разработчиков. По сути, что они туда заложили, тем мы и пользуемся.
    Если разработчики плагина заложили в него возможность "вытаскивать" данные, соответственно, это описано в документации к плагину, есть некий API, хуки, и тогда вы можете их использовать. Если такой возможности разработчиками плагина не заложено - тогда нет. Все зависит от плагина, и что в него заложено.
    Ответ написан
    2 комментария