Files
piratepoet/lib/Models/StatisticsWooCommercePurchases.php
Jan Jakeš 54549ff037 Convert variable names to camel case
[MAILPOET-1796]
2020-01-14 15:22:42 +01:00

42 lines
1.4 KiB
PHP

<?php
namespace MailPoet\Models;
use WC_Order;
/**
* @property int $newsletter_id
* @property int $subscriber_id
* @property int $queue_id
* @property int $click_id
* @property int $order_id
* @property string $order_currency
* @property float $order_price_total
*/
class StatisticsWooCommercePurchases extends Model {
public static $_table = MP_STATISTICS_WOOCOMMERCE_PURCHASES_TABLE;
public static function createOrUpdateByClickDataAndOrder(StatisticsClicks $click, WC_Order $order) {
// search by subscriber and newsletter IDs (instead of click itself) to avoid duplicities
// when a new click from the subscriber appeared since last tracking for given newsletter
// (this will keep the originally tracked click - likely the click that led to the order)
$statistics = self::where('order_id', $order->get_id())
->where('subscriber_id', $click->subscriberId)
->where('newsletter_id', $click->newsletterId)
->findOne();
if (!$statistics instanceof self) {
$statistics = self::create();
$statistics->newsletterId = $click->newsletterId;
$statistics->subscriberId = $click->subscriberId;
$statistics->queueId = $click->queueId;
$statistics->clickId = (int)$click->id;
$statistics->orderId = $order->get_id();
}
$statistics->orderCurrency = $order->get_currency();
$statistics->orderPriceTotal = (float)$order->get_total();
return $statistics->save();
}
}