当前位置: 首页 > 知识库问答 >
问题:

“存档”页面上的“附加费用”复选框

壤驷康裕
2023-03-14

我用WooCommerce制作了一个商店页面,其中单个产品页面被禁用。在归档页面上有一个数量输入字段,在此之前,我想添加一个附加费用复选框。这段代码不起作用,我不知道在哪里修改以将该费用添加到购物车和结帐。你能帮我一下吗?谢谢

这是我的密码:

// FRONTEND
function additional_fee() {
    if ( has_term( array( 'test' ), 'product_cat' ) ) {
        echo '<input type="checkbox" name="additional-fee" value="No">Additional Fee';
    } else {
        return;
    }
}
add_action( 'woocommerce_after_shop_loop_item_title', 'additional_fee' );

// STORE DATA
function store_additional_fee( $cart_item_data, $product_id, $variation_id ) {
    if( isset( $_POST['additional-fee'] ) ) {
        $cart_item_data['additional-fee'] = $_POST['additional-fee'];
    }
        return $cart_item_data;
    }
add_filter( 'woocommerce_add_cart_item_data', 'store_additional_fee', 10, 3 );

// ADD TO CHECKOUT
function add_checkout_additional_fee( $cart_object ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;
        foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        if ( isset( $cart_item['additional-fee'] ) ) {
        $ndmtransferfee = true;
        $quantity = $cart_item['quantity'];
        break;
        }
    }
    $fee = 5000;
    if ( $ndmtransferfee ) {
        WC()->cart->add_fee( __('Additional Fee', 'textdomain'), $fee * $quantity );
    }
}
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_additional_fee', 10, 1 );

共有1个答案

鲜于凯歌
2023-03-14

好的,它是基于LoicTheAztec回复管理工作。谢谢!

 类似资料:
  • 在Woocommerce结帐页面中,我正在尝试在结帐页面上添加一个复选框 我参考了这些文章 WooCommerce自定义结账字段添加费用订购ajax 用于在WooCommerce中添加/删除自定义费用的复选框字段 添加一个结帐复选框字段,在WooCommerce中启用百分比费用 它不能像我希望的那样工作。我做错了什么? 任何帮助都很感激。

  • 我在Minim Developer上发现了一种奇怪的行为;当我在控制台中运行以下代码时: Minium能够填写“描述”字段 但是,当我尝试在步骤定义中运行相同的代码时,出现以下错误: org . Mozilla . JavaScript . Wrapped exception:Wrapped org . open QA . selenium . staleelementreferenceexcep

  • 基于显示一个复选框,在Woocommerce结帐页面回答代码中添加费用,我试图将使用情况更改为购物车页面,而不是根据客户请求更改结帐页面。 到目前为止,我设法在购物车页面上显示自定义费用复选框并触发Ajax。 但是购物车总数不更新。如果有人能在代码上帮忙或者给我指明正确的方向? 此外,这是应该做的方式,还是有更简单的方法?

  • 我正在尝试一个Woocommerce票证插件。默认情况下,该插件会显示一个表,其中包含多个票证变体作为产品,并在下面显示一个文本字段作为其数量和一个提交按钮,以将产品添加到购物车中。 我想用单选按钮或复选框替换这个文本字段,这样用户就可以选择一种类型的票证,然后点击提交按钮将其中的一部分添加到购物车中。 我的想法是在foreach循环中创建一个复选框或单选按钮,该复选框或单选按钮的值为quanti

  • 我正在使用C#和Selenium Chromedriver来做一个测试项目,以抓取谷歌地图。 在到达第二个循环之前,它运行良好: 返回: OpenQA. Selenium.过时元素引用:元素未附加到页面文档 这是我所有的代码: 任何帮助将不胜感激!

  • 我得到了这个错误,当我试图点击一个下拉ID: 我想用这个代码: 有没有什么方法可以防止无限循环,或者更好的方法在我得到这个异常后点击id?