税是一种小费,是客户选择的购物车总数的百分比,但它应该只计算一个类别(食品)的总数,而不包括另一个类别(活动门票)。
add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
function woo_add_cart_fee( $cart ){
if ( ! $_POST || ( is_admin() && ! is_ajax() ) ) {
return;
}
if ( isset( $_POST['post_data'] ) ) {
parse_str( $_POST['post_data'], $post_data );
} else {
$post_data = $_POST;
}
if (isset($post_data['propina'])) {
global $woocommerce;
$porcentaje = $post_data['propina'] / 100;
$propina = ( $woocommerce->cart->cart_contents_total ) * $porcentaje;
WC()->cart->add_fee( 'Propina Sugerida:', $propina );
}
}
简单地说,($)-
编辑:我想我找到了解决方案,但当产品是一种变体时,我会遇到问题
add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
function woo_add_cart_fee( $cart ){
if ( ! $_POST || ( is_admin() && ! is_ajax() ) ) {
return;
}
if ( isset( $_POST['post_data'] ) ) {
parse_str( $_POST['post_data'], $post_data );
} else {
$post_data = $_POST;
}
if (isset($post_data['propina'])) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_in_cart = false;
$ticketpamount = 0;
foreach($items as $item => $values) {
$_product = $values['data'];
$terms = get_the_terms( $_product->id, 'product_cat' );
// second level loop search, in case some items have several categories
foreach ($terms as $term) {
$_categoryid = $term->term_id;
if ( $_categoryid === 122 ) {
//category is in cart!
$price = get_post_meta($values['product_id'] , '_price', true);
$ticketpamount += $price;
$product_in_cart = true;
}
}
}
$porcentaje = $post_data['propina'] / 100;
if ( $product_in_cart ) {
$propina = ( $woocommerce->cart->cart_contents_total - $ticketpamount ) * $porcentaje;
} else {
$propina = ( $woocommerce->cart->cart_contents_total ) * $porcentaje;
}
WC()->cart->add_fee( 'Propina Sugerida:', $propina );
}
}
找到解决方案,添加变量并乘以数量
add_action( 'woocommerce_cart_calculate_fees', 'woo_add_cart_fee' );
function woo_add_cart_fee( $cart ){
if ( ! $_POST || ( is_admin() && ! is_ajax() ) ) {
return;
}
if ( isset( $_POST['post_data'] ) ) {
parse_str( $_POST['post_data'], $post_data );
} else {
$post_data = $_POST;
}
if (isset($post_data['propina'])) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$product_in_cart = false;
$ticketpamount = 0;
foreach($items as $item => $values) {
$_product = $values['data'];
$terms = get_the_terms( $_product->id, 'product_cat' );
// second level loop search, in case some items have several categories
foreach ($terms as $term) {
$_categoryid = $term->term_id;
if ( $_categoryid === 122 ) {
//category is in cart!
//check if product is a variation and * quantity
if ( $item['variation_id'] ) {
$price = get_post_meta($values['variation_id'] , '_price', true) * $values['quantity'];
} else {
$price = get_post_meta($values['product_id'] , '_price', true);
}
$ticketpamount += $price;
$product_in_cart = true;
}
}
}
$porcentaje = $post_data['propina'] / 100;
if ( $product_in_cart ) {
$propina = ( $woocommerce->cart->cart_contents_total - $ticketpamount ) * $porcentaje;
} else {
$propina = ( $woocommerce->cart->cart_contents_total ) * $porcentaje;
}
WC()->cart->add_fee( 'Propina Sugerida:', $propina );
}
}
而不是$woodcommerce-
$subtotal = 0;
foreach ( WC()->cart->get_cart() as $key => $i ) {
$product_id = $i["product_id"];
if ( your_product_should_be_included( $product_id ) ) {
$subtotal += $i['line_subtotal'];
}
}
我想得到10产品从一个类别在WooCommerce 例如,对于获取帖子类别的最新帖子,我使用以下代码 我想要一个代码,像这样的商业产品
我想获取WooCommerce中的所有产品数据(产品sku、名称、价格、库存、可用性等),我可以使用wp查询吗?
OpenResty Inc. 公司为 OpenResty 提供多款商业产品。这些产品本身也 主要由OpenResty来驱动。 OpenResty XRay OpenResty XRay是新一代的应用性能管理(APM)产品,为OpenResty和其他开源软件使用,100% 使用非侵入式的动态跟踪技术。 它可以自动监控、发现、排除故障,并为广泛的用户提供修复建议。 在您运行的OpenResty应用程序
这是我需要解决的问题。 创建包含输入表单的基本网页。JavaScript将嵌入到HTML文档中。 输入表格应包括: 用户名字段订单数量输入字段物料价格只读字段–订单总成本“提交按钮”的值设置为5.31只读字段,不使用任何类型的表单按钮元素用户应能够输入其名称和订单数量,然后单击“提交”。单击“提交”时,表单将计算订单总额,包括8.25%的销售税。计算后,订单总额表单字段将更新为总额,包括美元符号和
问题内容: 从选择查询的开始时间和结束时间列表中,我需要找出不包括重叠时间和休息时间的总时间。 因此,在这种情况下,总计应为160分钟。 我不想使用太多循环来解决这个问题。寻找一些简单的解决方案。 问题答案: 结果是160
问题内容: 下面是两行。 第一行 是的两个项目和的一个项目。 第二行 是中的两项。 根据规范 1A + 1B = 2A 但是,当计算中包括 填充 时,总和是不正确的,如下面的示例所示。 题 如何使flex box在其计算中包括填充,以使示例中的box正确排列? 问题答案: 解决方案: 设置子元素,而不是在你的项目。 问题: 计算不使用。所以; 添加到元素并不能按照规范为您提供预期的宽度 。 例如,
问题内容: 谁能告诉我如何编写一个程序,其中我必须从文本文件中读取ac程序,然后计算if-else语句的数量,但不包括嵌套的if- else。在此程序中,我已经计算了文本文件中if和else的数量,但是如何从此计数中排除嵌套的if?请帮助我。 问题答案: 通常,以计数方式指定if-else语句是错误的,因为在编程语言中,if-else语句不仅是包含或的行(请考虑注释中的“ if”或“ else”词
问题内容: 我需要计算两个日期之间的营业日。例如:我们7月4日放假。所以如果我的日期是date1 = 07/03/2012 date2 = 07/06/2012 由于7月4日为节假日,因此,这些日期的黑白工作日应该为1。 我有一种下面的方法来计算工作日,该工作日仅计算周末,而不计算假期。还有什么方法可以计算假期吗....请帮我。 问题答案: 假设您有一个包含所有假期的列表。 只需在您的条件中添加条