Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.57 KB | None | 0 0
  1. <?php
  2. /*
  3. * Implements hook_menu
  4. */
  5. function proof_payment_menu() {
  6.   $items['user/%/orders/%/pay'] = array(
  7.     'title' => t('Proof of payment'),
  8.     'page arguments' => array(1, 3),
  9.     'page callback' => 'proof_payment_view',
  10.     'access callback' => TRUE,
  11.   );
  12.   return $items;
  13. }
  14.  
  15. function proof_payment_view($user_id, $order_id) {
  16.   $page = '';
  17.   $user_id = filter_xss($user_id);
  18.   $order_id = filter_xss($order_id);
  19.   if (is_numeric($order_id) && is_numeric($user_id)) {
  20.     $order = commerce_order_load($order_id);
  21.     //dpm($order);
  22.     if ($order) {
  23.       if ($order->uid == $user_id) {
  24.         if ($order->status == 'pending') {
  25.           //here change status
  26.           commerce_order_status_update($order, 'payment');
  27.  
  28.           $page .= '<h3>' . t('You confirmed your payment') . '</h3>';
  29.           $page .= '<p>' . t('The operator will verify the payment and send you the order data') . '</p>';
  30.           $page .= '<ul class="proof_payment">';
  31.           $page .= '<li>' . l(t('See order'), 'user/' . $order->uid . '/orders/' . $order_id) . '</li>';
  32.  
  33.           $query = new EntityFieldQuery();
  34.           $query->entityCondition('entity_type', 'node');
  35.           //$query->propertyCondition('status', 1);
  36.           $query->propertyCondition('type', 'user_identity');
  37.           $query->propertyCondition('uid', $order->uid);
  38.           $query->propertyOrderBy('created', 'desc');
  39.           $query->range(0, 1);
  40.           //$query->propertyCondition('language', $language->language, '=');
  41.           $result = $query->execute();
  42.           //���� ��� ������� ����, ������ ��������� ����
  43.           if (empty($result['node']))
  44.             $page .= '<li>' . l(t('Confirm identity'), '/user/' . $order->uid . '/identity') . '</li>';
  45.           else {//�������� ���� ����
  46.             $nodes = node_load_multiple(array_keys($result['node']));
  47.             foreach ($nodes as $node) {
  48.               if (isset($node->field_date_expire['und'][0]['value'])) {
  49.                 $date = $node->field_date_expire['und'][0]['value'];
  50.                 if (strtotime($date) < time()) {
  51.                   $page .= '<li>' . l(t('Confirm identity'), '/user/' . $order->uid . '/identity') . '</li>';
  52.                   drupal_set_message(t('Please update your identity (date expire)'), 'status');
  53.                 }
  54.               }
  55.             }
  56.           }
  57.           $page .= '</ul>';
  58.         }
  59.         else if ($order->status == 'canceled') {
  60.           drupal_set_message(t('Your order has been canceled'), 'warning');
  61.         }else{
  62.             drupal_set_message(t('You have already confirmed your payment'), 'status');
  63.             watchdog('proof_payment', t('You have already confirmed your payment') . ' User: ' . $order->uid . ' Order: ' . $order_id);
  64.         }
  65.       } else {
  66.         drupal_set_message(t('This order does not belong to this user'), 'warning');
  67.         watchdog('proof_payment', t('This order does not belong to this user') . ' User: ' . $user_id . ' Order: ' . $order_id);
  68.       }
  69.     } else {
  70.       drupal_set_message(t('This order not exist'), 'warning');
  71.       watchdog('proof_payment', t('This order not exist') . ' User: ' . $user_id . ' Order: ' . $order_id);
  72.     }
  73.   }
  74.   return $page;
  75. }
  76.  
  77. //�������� ������� ���������� ���� ���� � ����� ���� ������
  78. /**
  79.  * @return mixed
  80.  */
  81. function proof_payment_block_info() {
  82.   // This example comes from node.module.
  83.   $blocks['proof_payment'] = array(
  84.     'info' => t('Proof payment link'),
  85.   );
  86.   return $blocks;
  87. }
  88. //������� ����������� �����
  89. function proof_payment_block_view($delta = '') {
  90.   $block = array();
  91.   switch ($delta) {
  92.     case 'proof_payment':
  93.       $user_id = filter_xss(arg(1));
  94.       $order_id = filter_xss(arg(3));
  95.       $pay = filter_xss(arg(4));
  96.       //dpm($pay);
  97.       if(empty($pay)) {
  98.         $order = commerce_order_load($order_id);
  99.         $status = commerce_order_status_load($order->status);
  100.         $block['content'] = '<div class="current-status-pay">' . t('Current status: ') . '<span>' . t($status['title']) . '</span></div>';
  101.         if ($order->status == 'pending') {
  102.           $block['content'] .= '<div class="submit_payment">';
  103.           $block['content'] .= l(t('Confirm payment'), '/user/' . $user_id . '/orders/' . $order_id . '/pay');
  104.           $block['content'] .= '</div>';
  105.         }
  106.       }
  107.     break;
  108.   }
  109.   return $block;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement