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

Добавьте процентную плату в WooCommerce за продукт в зависимости от категории.

Я новичок здесь, хотя я использую веб-сайт в течение нескольких месяцев, чтобы получить помощь от других вопросов.

Я пытаюсь добавить плату в woocommerce следующим образом:

Сайт должен проверить корзину, найти продукты, соответствующие идентификатору категории, рассчитать процентную комиссию за каждый из этих продуктов, суммировать их и взимать плату.

Пока мне удалось проверить корзину, найти продукты, соответствующие категории (получив их количество), и умножить сумму на фиксированную плату.

Как видите, если у меня есть 3 продукта, соответствующих критериям (идентификатор категории) по цене 50, 40 и 30 фунтов стерлингов, комиссия будет составлять 3*10 (фиксированная комиссия — 10).

Чего я действительно хочу, так это того, чтобы сайт рассчитывал процентную комиссию от этих продуктов (50 * 10, 40 * 10, 30 * 10) и суммировал их (500 + 400 + 300). Очевидно, что не все продукты будут иметь одинаковую цену.

Вот мой код:

function df_add_handling_fee( $cart_object ) {

global $woocommerce;
$specialfeecat = 61; // category id for the special fee
$spfee = 0.00; // initialize special fee
$spfeeperprod = 10; //special fee per product

//Getting Cart Contents. 
$cart = $woocommerce->cart->get_cart();
//Calculating Quantity
foreach($cart as $cart_val => $cid){
$qty += $cid['quantity']; 
}
foreach ( $cart_object->cart_contents as $key => $value ) {

$proid = $value['product_id']; //get the product id from cart
$quantiy = $value['quantity']; //get quantity from cart
$itmprice = $value['data']->price; //get product price

$terms = get_the_terms( $proid, 'product_cat' ); //get taxonomy of the products
if ( $terms && ! is_wp_error( $terms ) ) :
    foreach ( $terms as $term ) {
        $catid = $term->term_id;
        if($specialfeecat == $catid ) {
            $spfee = $spfee + $quantiy * $spfeeperprod;
        }
    }
endif;  
}

if($spfee > 0 ) {

$woocommerce->cart->add_fee( 'Handling Fee', $spfee, true, 'standard' );
}

}

add_action( 'woocommerce_cart_calculate_fees', 'df_add_handling_fee' );

Спасибо!


  • Вы имеете в виду, что хотите рассчитать процент комиссии, применяемой к каждому продукту или ко всей корзине (сумма всех продуктов = общая корзина)? Не очень понятно… 10.04.2016
  • Я хочу, чтобы корзина взимала плату за настройку некоторых продуктов. Таким образом, каждый настраиваемый продукт находится в категории с идентификатором 61. Если вы заказываете 3 продукта, скажем (50 фунтов стерлингов, 40 фунтов стерлингов и 30 фунтов стерлингов), два из них (50 фунтов стерлингов и 40 фунтов стерлингов) относятся к категории с идентификатором 61 (настраиваемые). Так что я хочу, чтобы тележка брала за них 10% больше. Таким образом, он рассчитает 10% каждого, затем суммирует их и взимает плату в качестве комиссии. Таким образом, конечная корзина этих трех продуктов будет следующей: Продукт 1 — 50 фунтов стерлингов Продукт 2 — 40 фунтов стерлингов Продукт 3 — 30 фунтов стерлингов ---------------------- Итого - Плата 120 фунтов стерлингов - 9 фунтов стерлингов (10% от 50 + 10% от 40) ИТОГО - 129 фунтов стерлингов Спасибо. 11.04.2016

Ответы:


1

Красиво представлено!

Этот плагин может легко решить проблему, он позволяет вам взимать дополнительную плату в корзине на основе комбинации нескольких условных правил, которые вы настраиваете в своем магазине woocommerce.

Я надеюсь, что это может помочь!

Условные сборы WooCommerce за товары при оформлении заказа

11.01.2017

2

Надеюсь, это поможет:

Продукт A — Категория 1 /// Продукт B — Категория 2 /// Продукт C — Категория 3 //// Продукт D — Категория 1

Моя корзина = 2 продукта A, 3 продукта B, 1 продукта C и 4 продукта D.

Я хочу добавить комиссию, которая рассчитывает, что у меня есть 7 предметов из категорий 1 и 2, и добавляет фиксированную сумму в размере 5 долларов за продукт....

Я нашел приведенный ниже код в Интернете, это может быть проще... К сожалению, я купил несколько плагинов, но они не делают то, что мне нужно.

add_action( 'woocommerce_cart_calculate_fees','custom_applied_fee');
function custom_applied_fee() {

if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;

// Set HERE your categories (can be an ID, a slug or the name… or an array of this)
$category1 = 'plain';
$category2 = 'plywood';

// variables initialisation
$fee = 0;

// Iterating through each cart item
foreach(WC()->cart->get_cart() as $cart_item){
    // Get the product object
    $product = new WC_Product( $cart_item['product_id'] );
    $quantiy = $value['quantity']; //get quantity from cart

    // Initialising variables (in the loop)
    $cat1 = false; $cat2 = false;

    // ## CALCULATIONS ## (Make here your conditional calculations)
    $quantity = GET TOTAL QUANTITY OF ALL ITEMS IN PREVIOUSLY SPECIFIED CATEBORIES
    if($quantity <= 1){
        $fee += 10 * $quanity;
    } elseif($quantity > 1 && $dimention <= 9){
        $fee += 5 * $quanity;
    } elseif($dimention > 10){
        $fee += 1 * $quanity;
    }
}

// Adding the fee
if ( $fee != 0 )
    WC()->cart->add_fee( $fee_text, $fee, true );


}
06.09.2017
Новые материалы

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

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

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

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

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

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

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