根据 woocommerce 中的一系列尺寸(面积)设置产品价格

问题描述 投票:0回答:1

我使用 WordPress 和 woocommerce 作为电子商务网站。 我想根据产品的面积(高度X宽度)动态计算产品

因此产品价格将有条件地基于区域范围,例如:

  • 如果面积介于 1 (平方英尺) 至 5 (平方英尺) 价格为 5 美元
  • 如果面积介于 6 (平方英尺) 至 10 (平方英尺) 价格为 6 美元

任何帮助将不胜感激。

php wordpress woocommerce area product-price
1个回答
1
投票

尝试以下代码示例,当产品保存在后端时,它将根据其面积自动计算产品价格。 您可能需要根据您的测量单位设置对面积计算进行一些调整......

代码:

add_action( 'save_post', 'calculate_product_price_based_on_area', 20, 3 ); function calculate_product_price_based_on_area( $post_id, $post, $update ) { if ( $post->post_type != 'product') return; // Only products // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id; // Check the user's permissions. if ( ! current_user_can( 'edit_product', $post_id ) ) return $post_id; // Product width and height $width = isset($_POST['_width']) ? (float) $_POST['_width'] : 0; $height = isset($_POST['_height']) ? (float) $_POST['_height'] : 0; if( $width > 0 && $height > 0 ){ // Area calculation from product width and height $area = $width * $height; // Define the price conditionally based on area if( $area > 0 && $area <= 5 ){ $price = 5; } elseif( $area > 5 && $area <= 10 ){ $price = 6; } // Update the calculated product price if( isset($price) && $price > 0 ){ // if product is not on sale if( $_POST['_sale_price'] != '' ){ // Update active price update_post_meta( $post_id, '_price', $price ); } // Update regular price update_post_meta( $post_id, '_regular_price', $price ); wc_delete_product_transients( $post_id ); // Update product cache } } }

代码位于活动子主题(或活动主题)的 function.php 文件中。已测试且有效。

© www.soinside.com 2019 - 2024. All rights reserved.