- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
问题:
我需要一种方法来首先获取使用特定优惠券代码进行的所有销售。然后从所有这些销售中获得总收入(最好减去这些销售的任何返回。以获得实际收入值)。
执行的想法
我为此使用了 woocommerce 2.6.8 和 MySql 数据库。我的猜测是,我将不得不首先计算使用 PHP 和 MySql 使用特定优惠券进行的销售数量。然后,对于每个带有特定优惠券的唯一订单 ID,对总计进行新查询。
非常感谢任何关于 PHP 和查询的建议 :)
我应该指出,我不希望从优惠券中获得折扣总额。我需要计算使用特定优惠券(不是折扣)售出的总值(value)。
好的,到目前为止还没有有效的解决方案。但我认为这是它的基本结构。获得总数并不是那么容易,因为优惠券与订单没有直接关联。我相信查询必须符合以下内容:
{TBLPRFX}_woocommerce_order_items
第 1 步。获取 order_id FOR order_item_name={COUPON_NAME}
第 2 步。GET order_item_id FOR order_item_type=line_item WHERE order_id EQUAL {RESULT FROM STEP 1}
| order_item_id | order_item_name |订单项目类型 |订单编号 |
| 40971 | {COUPON_NAME} |优惠券 | 001
| 40970 |增值税 |税 | 001
| 40969 | {PRODUCT_NAME} |订单项 | 001
--
{TBLPRFX}_woocommerce_order_itemmeta
第 3 步。将 meta_value FROM meta_key=_line_tax AND meta_key=_line_total WHERE order_item_id={RESULT FROM STEP 2}
| order_item_id |元键 |元值 |
| 40969 | _line_tax | {VALUE_TAX}
| 40969 | _line_total | 总计{VALUE_TOTAL}
| 40969 | _product_id | {PRODUCT_ID}
--
这是我需要帮助弄清楚的查询 :) 不太确定如何在 MySql 和 PHP 中请求这个。我的想法是使它成为一个 foreach,其中“order_item_name={COUPON_NAME_VARIABLE}”,这样我就可以总结使用该优惠券的所有销售总额(即不是优惠券折扣值)。
最佳答案
经过大量测试,我想出了一个可行的解决方案。它不是最时尚的,但可以完成工作。
如果任何 SQL 忍者看到这个,如果您可以建议任何更简化的查询,那就太好了 :)
在制定第一个可行的解决方案后,我意识到需要检查更多步骤以获得更准确的总数。处理退款、税收、折扣等,并确保我只从已完成的订单中获取数据(因为取消、搁置、待处理等在完成之前不是销售)。
所以,这就是我的结局。就像我说的,我知道它需要一些工作并且可能做得更好。但就目前而言,它有效。
修改后的 FUNCTIONS.PHP 代码 -
// COUPON CHECK
function couponcheck() {
global $wpdb;
$gtl = 0; // Grand Total
$total_sales = 0;
$cpn = $_GET['cpn']; // Get coupon name from URL string
$tblprfx = '[YOUR_TABLE_PREFIX]'; // Table prefix
$wpps = 'posts'; // Look for post_status
$wppm = 'postmeta';
$wcoi = 'woocommerce_order_items';
$conversion_value = 1;
$base_currency = '[YOUR_BASE_CURRENCY]';
$currency;
$orders_made;
// Check to make sure there is a couon name in string
if(isset($cpn) && !empty($cpn)){
// Query chain
$init_result = $wpdb->get_results("SELECT order_id FROM {$tblprfx}{$wcoi} WHERE order_item_name='$cpn'");
$orders_made = count($init_result);
foreach($init_result as $ir){
$r1 = $ir->order_id;
$completed_result = $wpdb->get_results( "SELECT ID FROM {$tblprfx}{$wpps} WHERE post_status='wc-completed' AND ID=$r1" );
foreach($completed_result as $post_rows) {
$pr = $post_rows->ID;
$completed_sales += 1;
$currency_result = $wpdb->get_results( "SELECT meta_value FROM {$tblprfx}{$wppm} WHERE post_id=$pr AND meta_key='_order_currency'" );
foreach($currency_result as $cr) {
$currency = $cr->meta_value;
if($currency === 'EUR'){
$currency = 'EUR';
$currency_rate = $wpdb->get_results( "SELECT meta_value FROM {$tblprfx}{$wppm} WHERE post_id=$pr AND meta_key='_woocs_order_rate'" ); foreach($currency_rate as $rv) {
$rate_value = $rv->meta_value;
$conversion_value = $rate_value;
}
}
}
$data_result = $wpdb->get_results( "SELECT meta_value FROM {$tblprfx}{$wppm} WHERE post_id=$pr AND meta_key='_order_total'" );
foreach($data_result as $dr) {
$d = $dr->meta_value;
if($currency === 'EUR'){
$eur += $d;
$d = $d/$conversion_value;
}else{
$[YOUR_BASE_CURRENCY] += $d;
}
$gtl += $d;
}
}
}
// Total number of sales
$refunded_orders = $orders_made-$completed_sales;
$order_avg = $gtl/$completed_sales;
echo '<p>Total <strong>completed, non-refunded, sales made (after discounts)</strong> with coupon <strong>' . strtoupper($cpn) . '</strong>: <br />(Number of refunded orders: <strong>' . $refunded_orders . ')</strong></p><h2>' . $completed_sales . '</h2><p>At a total <strong>sales value</strong> of:</p><h2>' . number_format($[YOUR_BASE_CURRENCY],2) . ' [YOUR_BASE_CURRENCY]</h2><h2>€' . number_format($eur,2) . '</h2><p>Adding up to a <strong>sum total</strong> of:</p><h2>' . number_format($gtl,2) . ' [YOUR_BASE_CURRENCY]</h2><p>Creating an average order value of:<br /><strong>' . number_format($order_avg,2) . ' [YOUR_BASE_CURRENCY]</strong>';
}
} add_shortcode('coupons', 'couponcheck');
请注意,我将我的实际基础货币更改为 [YOUR_BASE_CURRENCY]。欢迎评论(建设性的):)
关于php - 特定优惠券的 Woocommerce 总销售额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41185586/
融e购拍一拍抽微信1-99元立减金/优惠券 微信搜索并关注“融e购”公众号 回复“拍一拍” 进入然后自己创建个群拉好友或者小号 在群里互拍对方 或者从下面链接进入小编的群大家都可以在里面互拍 每
三只松鼠收集福卡 抢千分礼包+优惠券 扫码进入微信活动文章页面 在活动页面中 下拉进入小程序 完成任务可以获得抽卡机会 收集福卡 可以得新年大礼包 有千分礼包 和 优惠券 大家速度收集 ~
大家好,我是汤师爷~ 概念模型设计是促销系统开发的关键环节,我们需要基于之前的功能分析,将复杂的促销业务拆解成清晰的领域概念,这些概念之间的关系界定和边界划分,将直接决定系统的可维护性和扩展性。
我试图从优惠券折扣中排除一些具有特定产品属性的产品变体。 在我的例子中,我的目标是产品属性“finish”设置为“Classic Frame”或“Box Frame”术语的产品变体。 我尝试使用 "E
我正在使用 Paypal API 对实体商品和数字商品进行支付。 一切都按预期工作,但在我调用 set_express_checkout(使用 AngelEye PHP 类)并将用户重定向到 Payp
我可以在后端创建优惠券,但在结帐过程中,没有输入优惠券的选项。我能找到的唯一其他信息是如何通过注释掉该行来禁用优惠券 block type="checkout/cart_coupon"name="ch
我遇到了一些麻烦。我想要做的是,每次有人订阅我们的时事通讯时,都会在 Magento 中自动生成一个随机优惠券代码。优惠券是任何东西的 10 美元折扣,并且会有 exp。订阅后两周的日期。 所以,我正
我使用 Stripe 的默认表单进行付款处理。如何添加优惠券字段?我已经创建了优惠券,但我不确定如何处理优惠券代码。 " data-amount=1795 da
我正在与一个想要创建 100% 关闭订阅优惠券代码的客户合作。如果用户拥有这些优惠券代码之一,他们不希望用户必须输入信用卡。这在 Stripe 中可能吗? 我正在使用 Laravel Spark,当用
有人知道与Stripe一次性交易是否可以接受优惠券吗? 我知道您可以添加带有定期订阅的优惠券,但我只希望能够提供一次性付款折扣。 最佳答案 我认为这里的想法是,您可以完全控制单个费用(或一次性付款,无
是否有已知的方法可以通过 API 在 Magento 社区版中创建新的优惠券代码(购物车价格规则)? 我希望能够使用另一个网络应用程序自动生成优惠券代码,并通过一些后端通信在 Magento 中同时创
我一直找不到准确的答案。 我们已经知道,PayPal 的 REST API 没有应用折扣代码的选项。但是,我们可以将另一个项目添加到 item_list 中,其中包含一个 I.e. 的描述。促销/折扣
借助 QuantLib C++ 库,我尝试评估在其生命周期内具有不同息票的债券(例如,前三年为 6%,其余三年为 4%)。 我注意到 FixedRateBond 的构造函数类接受优惠券 vector
如标题中所述,我正在尝试通过电子邮件限制访问 WooCommerce 优惠券列表,以便在我的应用程序中使用它。 但是我确实成功访问了优惠券列表,但我无法通过电子邮件而非代码获取它。 现在我尝试使用 P
使用您自己的本地数据库镜像 Stripe 是一件好事吗? 使用 API 调用(创建新计划、优惠券、订阅等)和 webhook(生成新发票或费用、付款失败)进行镜像,因此您可以存储所有数据(字面意思是具
我是一名优秀的程序员,十分优秀!