通过Woocommerce,该网站有两种产品按钮:
当点击“联系我们订购”按钮时,访客将被重定向到“联系我们订购”页面中的联系表单。此联系人表单是使用联系人表单7插件构建的。
对于一些产品,联系人表单有一个专属的复选框字段,他们可以在其中选择衬里。根据他们选择的衬里,我将访问者重定向到结账页面,并通过URL传递一些值。
例如:https://milanshopping.co.uk/checkout/?val=15
在functions.php
文件中,我使用了以下代码:
add_action( 'woocommerce_cart_calculate_fees','milanshopping_add_lining_fees' );
function milanshopping_add_lining_fees() {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if(isset($_GET['val'])){
if($_GET['val'] == 15){
$leather_fee = 15;
}else{
$leather_fee = 20;
}
}
if($leather_fee != 0 ){
WC()->cart->add_fee( 'Leather fee', $leather_fee);
}
}
但是,即使存在$_GET
值,这也无法添加费用。我通过调用echo$_GET['val']
进行了检查,并且打印了值。
但是如果我在if语句之外添加以下代码,
WC()->cart->add_fee( 'Leather fee', $leather_fee);
虽然添加的费用为0,而不是我试图从$\u GET
值生成的费用,但它仍然有效。有什么想法吗?
使用contact form 7 dom事件“wpcf7submit”完成从contact us到order页面到checkout页面的重定向,并使用单独的函数将产品添加到购物车。
更新:您需要首先在会话中获取查询到的url变量值,方法如下:
add_action( 'template_redirect', 'grab_fee_query_var' );
function grab_fee_query_var() {
session_start();
// Not on checkout page
if( ! is_admin() && isset($_GET['val']) ) {
$_SESSION['leather_fee'] = $_GET['val'];
WC()->session->__unset('leather_fee');
}
}
add_action( 'woocommerce_cart_calculate_fees','add_custom_cart_fee' );
function add_custom_cart_fee() {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if(isset($_SESSION['leather_fee']) && ! WC()->session->__isset('leather_fee') ){
$value = $_SESSION['leather_fee'] == 15 ? 15 : 20;
WC()->session->set('leather_fee', $value );
}
if( WC()->session->__isset('leather_fee') ) {
$leather_fee = WC()->session->get('leather_fee');
WC()->cart->add_fee( 'Leather fee', $leather_fee);
}
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作。
我经营一家Woocommerce商店,该商店也提供免费产品(_常规价格=0)。客户必须选择数量并将其添加到购物车中,然后下订单才能收到产品。但这并不是Woocommerce的工作原理,它隐藏了所有价格为0的产品的“添加到购物车”链接。并且不会在购物车页面中显示它们。有没有解决这个问题的办法?非常感谢。
在商品分类页面上,当有人点击“添加到购物车”时,WooCommerce通过Ajax在此按钮下方添加“查看购物车”。我发现处理这个的脚本是 /assets/js/frontend/add-to-cart.js 现在,我想添加"Procceed to check out",这样某人就可以立即去结账。 这是脚本的输出: 有没有人做过类似的事情?
最初,我选择了一个包(Woo订阅) 然后添加了所有详细信息。 但未提交。 回到网站,所以再次购买我需要选择一个包。所以我选择了这个包,并填写了详细信息,然后转到付款包。 现在在我的购物车中,两个包都存在(即我没有第一次购买就选择的包和最近的包) 如何修复此问题,使最新选定的一个在购物车中,而较早的一个在选定最新的一个后立即删除。 我尝试了这个Woocommerce从购物车中删除所有产品,并将当前产
如果有人能给我一个提示,表明我做错了什么,那将是一个很大的帮助。
问题内容: 我有一个包含以下数据的项目: 当用户单击“添加到购物车”时,我想使用WC API发出Ajax请求并将上述项目添加到购物车。 然后,我想在购物车页面上使用WC API发出另一个Ajax请求并检索购物车的内容。 我还没有从客户端使用Javascript找到任何文档(正式或非正式)。 有谁知道并且可以给我提供一个例子吗? 另外,有谁知道为什么WooCommerce Api文档如此恐怖(缺少有
我正在使用Woocommerce,正在搜索一种方法来隐藏单个产品页面上的“添加到购物车”按钮,如果该产品是免费的-我正在进行大型CSV导入,并且一些产品的价格设置为零-我只想隐藏这些产品上的“添加到购物车”按钮,因此这些产品不可购买。 已经在支持页面上问过了,但没有成功 问候