1 <?php
2
3
4
5
6
7
8 class ClientVKOrderNotification extends OrderHandlersDecorator {
9
10 function OnAfterCreateOrder(& $member) {
11 $conf = SiteConfig::current_site_config();
12 if (!$conf->ClientVKOrderNotificationActive) {
13 return false;
14 }
15
16
17 if (!$member) {
18 $member = $this->owner->Member();
19 }
20
21 if ($member && $member->VKLogin) {
22 $url = 'https://api.vk.com/method/messages.send';
23 $message = $this->owner->customise(array(
24 'Member' => $member,
25 'Order' => $this->owner,
26 'PurchaseCompleteMessage' => strip_tags(DataObject::get_one('CheckoutPage')->PurchaseComplete),
27 ))->owner->renderWith('ClientVKCreateOrderMessage');
28
29
30 $postEntry = new VKNotificationQueue();
31 $postEntry->UserID = $member->VKLogin;
32 $postEntry->Message = $message;
33 $postEntry->write();
34 }
35 }
36
37
38 function OnAfterChangeStatus($member, $changedStatus, $note) {
39 $conf = SiteConfig::current_site_config();
40 if (!$conf->ClientVKOrderNotificationActive) {
41 return false;
42 }
43 if ($this->owner->MemberID && $this->owner->Member() && $this->owner->Member()->VKLogin) {
44 $url = 'https://api.vk.com/method/messages.send';
45 $message = $this->owner->customise(array(
46 'Member' => $this->owner->Member(),
47 'Note' => $note,
48 'Order' => $this->owner,
49 ))->owner->renderWith('ClientVKChangeOrderStatusMessage');
50
51
52 $postEntry = new VKNotificationQueue();
53 $postEntry->UserID = $this->owner->Member()->VKLogin;
54 $postEntry->Message = $message;
55 $postEntry->write();
56 }
57 }
58 }
59
60
61 class ClientVKOrderNotification_SiteConfig extends SiteConfigDecorator {
62 function () {
63 return array(
64 'db' => array(
65 'ClientVKOrderNotificationActive' => 'Boolean',
66 'ClientNotificationVKAccessToken' => 'Varchar(255)',
67 )
68 );
69 }
70 public function updateCMSFields(FieldSet &$fields) {
71 $tab = self::get_config_tab($fields, 'OrderNotifications.VKOrderNotification');
72 $tab->push(new CheckboxField('ClientVKOrderNotificationActive', $this->owner->FieldLabel('ClientVKOrderNotificationActive')));
73 $tab->push(new TextField('ClientNotificationVKAccessToken', $this->owner->FieldLabel('ClientNotificationVKAccessToken')));
74 }
75 }
76
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the
Silverstripe Forums to ask development related questions.
-