Nano Hash - криптовалюты, майнинг, программирование

Woocommerce - попытка извлечь стоимость доставки для заказа

Я использую woocommerce и установил плагин для печати накладных. Что я пытаюсь сделать, так это отредактировать файл печати, чтобы, если кто-то выберет определенную «дополнительную стоимость доставки», он напечатал соответствующий печатный оттиск почтовой оплаты - 1-й класс против 2-го класса.

У меня в голове есть заявление ЕСЛИ, основанное на стоимости доставки (БЕСПЛАТНО против 1 фунта стерлингов), которую я могу сделать.

НО, у меня проблемы с извлечением значения, чтобы я мог его проверить.

Копая глубже, похоже, мне нужно использовать метод get_shipping() в классе WC_Order, чтобы я мог проверить значение - http://docs.woothemes.com/wc-apidocs/class-WC_Order.html - и здесь я терплю неудачу... с треском.

Глядя на эту страницу - http://docs.woothemes.com/document/class-reference/#listofclassesinwoocommerce - я могу скопировать и вставить пример WC_Cart непосредственно в файл .php, который используется для печати и успешного отображения значения, но когда я меняю его на то, что считаю правильным для использования get_shipping(), вместо этого я получаю «Неустранимая ошибка: вызов функции-члена get_shipping() для не-объекта в .....».

Вот что я поставил

<?php global $woocommerce;
$order_shipping_total = $woocommerce->order->get_shipping();
echo $order_shipping_total ;
?>

Теперь я предполагаю, что, поскольку я достиг предела своих возможностей, мне нужно инициализировать класс WC_Order, но я не знаю, как это сделать.

Любая помощь будет принята.

Ваше здоровье

01.04.2013

Ответы:


1

Вы были почти там! Вам действительно нужно инициализировать заказ. $woocommerce понятия не имеет, о каком порядке вы говорите. Итак, вы создаете объект из заказа:

$order = new WC_Order( $order_id);

Теперь вся информация из этого заказа (включая стоимость доставки) доступна через $order. Единственное, что вам нужно знать, это соответствующий $order_id. Поскольку вы находитесь в среде печати накладных, вы можете получить доступ к этому значению через $wcdn->print->order_id.

это сделает то, что вам нужно:

<?php
global $wcdn;
$order = new WC_Order($wcdn->print->order_id);
$order_shipping_total = $order->get_total_shipping();
echo $order_shipping_total;
?>
03.04.2013
  • в какой-то момент имя метода было изменено с get_shipping() на get_total_shipping(). Соответствующая страница документации: docs.woocommerce.com/wc-apidocs/class-WC_Order. html 20.08.2016

  • 2

    от > WC 3.Вы можете получить общую стоимость доставки текущего заказа с помощью

    <?php
    $current_shipping_cost = WC()->cart->get_cart_shipping_total();
    echo $current_shipping_cost;
    ?>
    
    29.06.2017

    3

    [Обновление 2018 года]

    Ты можешь использовать

    <?php 
    $order = wc_get_order( $order_id );
    $order_shipping_total = $order->get_shipping_total();
    echo $order_shipping_total;
    ?>
    
    12.07.2018
  • Пожалуйста, добавьте некоторые пояснения к вашему коду, чтобы помочь человеку, который задал вопросы 12.07.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..