/**
  * Get singleton instance of class
  *
  * @return null|DABBA_API_Catch_Request
  */
 public static function get()
 {
     if (self::$instance == null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
Example #2
0
 /**
  * Initialize class
  */
 private function init()
 {
     // Setup Rewrite Rules
     DABBA_API_Rewrite_Rules::get();
     // Default webservice
     DABBA_API_Web_services::get();
     if (is_admin()) {
         // Backend
         // Setup settings
         DABBA_API_Settings::get();
     } else {
         // Frondend
         // Catch request
         DABBA_API_Catch_Request::get();
     }
 }
 public function register()
 {
     DABBA_API_Catch_Request::get()->check_params(array('user_email', 'type'));
     $user_email = $_POST['user_email'];
     if (username_exists($user_email) || email_exists($user_email)) {
         DABBA_API_Output::get()->output(false, 409, "User already exists.");
     }
     switch ($_POST['type']) {
         case 'site':
             DABBA_API_Catch_Request::get()->check_params(array('user_password'));
             $user_password = $_POST['user_password'];
             $userdata = array('user_login' => $user_email, 'user_email' => $user_email, 'role' => 'customer', 'user_pass' => $user_password);
             $user_id = wp_insert_user($userdata);
             if (is_wp_error($user)) {
                 DABBA_API_Output::get()->output(false, 401, $user->get_error_code());
             }
             break;
         case 'facebook':
             DABBA_API_Catch_Request::get()->check_params(array('facebook_uid'));
             $facebook_uid = $_POST['facebook_uid'];
             $user_password = wp_generate_password($length = 12, $include_standard_special_chars = false);
             $userdata = array('user_login' => $user_email, 'user_email' => $user_email, 'role' => 'customer', 'user_pass' => $user_password);
             $user_id = wp_insert_user($userdata);
             if (is_wp_error($user)) {
                 DABBA_API_Output::get()->output(false, 401, $user->get_error_code());
             }
             add_user_meta($user_id, '_wc_social_login_facebook_uid', $facebook_uid);
             break;
         case 'google':
             DABBA_API_Catch_Request::get()->check_params(array('google_uid'));
             $google_uid = $_POST['google_uid'];
             $user_password = wp_generate_password($length = 12, $include_standard_special_chars = false);
             $userdata = array('user_login' => $user_email, 'user_email' => $user_email, 'role' => 'customer', 'user_pass' => $user_password);
             $user_id = wp_insert_user($userdata);
             if (is_wp_error($user)) {
                 DABBA_API_Output::get()->output(false, 401, $user->get_error_code());
             }
             add_user_meta($user_id, '_wc_social_login_google_uid', $google_uid);
             break;
         default:
             DABBA_API_Output::get()->output(false, 400, "Error in param 'type'");
             break;
     }
     $user = get_user_by('id', $user_id);
     if ($user) {
         DABBA_API_Output::get()->output(true, 200, '', array('user' => array('ID' => $user->ID, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'roles' => $user->roles)));
     } else {
         DABBA_API_Output::get()->output(false, 500, "Server Error");
     }
 }
 public function create_order()
 {
     var_dump($_POST);
     DABBA_API_Catch_Request::get()->check_params(array('company', 'phone', 'address_1', 'address_2', 'corp', 'timeframe', 'food_delivery_accepted', 'line_items', 'method_id', 'method_title', 'paid', 'user_id'));
     //$user = wp_get_current_user();
     $user = get_userdata($_POST['user_id']);
     $address = array('first_name' => $user->user_firstname, 'last_name' => $user->user_lastname, 'company' => $_POST['company'], 'email' => $user->user_email, 'phone' => $_POST['phone'], 'address_1' => $_POST['address_1'], 'address_2' => $_POST['address_2'], 'city' => 'Mexico City', 'state' => 'Distrito Federal', 'country' => 'MX', 'postcode' => $_POST['postcode']);
     $order = wc_create_order();
     $order->set_address($address, 'billing');
     $order->set_address($address, 'shipping');
     //$order->add_coupon('Fresher','10','2'); // accepted param $couponcode, $couponamount,$coupon_tax
     update_post_meta($order->id, 'billing_corp', sanitize_text_field($_POST['corp']));
     update_post_meta($order->id, 'billing_timeframe', sanitize_text_field($_POST['timeframe']));
     update_post_meta($order->id, 'billing_food_delivery_accepted', $_POST['food_delivery_accepted']);
     update_post_meta($order->id, '_payment_method', $_POST['method_id']);
     update_post_meta($order->id, '_payment_method_title', $_POST['method_title']);
     if (isset($_POST['stripe_transaction_id']) && isset($_POST['stripe_customer_id'])) {
         // $fee = ( 3.6 * $amount + 3 ) * 0.16;
         // $net_revenue = $amount - $fee;
         update_post_meta($order->id, 'Stripe Fee', 0);
         update_post_meta($order->id, 'Net Revenue From Stripe', 0);
         update_post_meta($order->id, '_transaction_id', $_POST['stripe_transaction_id']);
         update_post_meta($order->id, '_stripe_customer_id', $_POST['stripe_customer_id']);
         update_post_meta($order->id, '_stripe_charge_id', $_POST['stripe_transaction_id']);
     }
     if (isset($_POST['paypal_address']) && isset($_POST['paypal_payment_type']) && isset($_POST['paypal_transaction_fee'])) {
     }
     update_post_meta($order->id, '_customer_user', $_POST['user_id']);
     $line_items_decode = json_decode(stripslashes($_POST['line_items']));
     //$line_items_decode = json_decode( '[{"id" : "9579","quantity" : "1"},{"id" : "2933","quantity" :"1"}]');
     foreach ($line_items_decode as $item) {
         $order->add_product(get_product($item->id), $item->quantity);
     }
     if (isset($_POST['line_coupons'])) {
         $line_coupons_decode = json_decode(stripslashes($_POST['line_coupons']));
         foreach ($line_coupons_decode as $coupon) {
             $c = $order->add_coupon($coupon->code, $coupon->discount);
         }
     }
     if (isset($_POST['order_note'])) {
         $order->add_order_note($_POST['order_note']);
     }
     $order->calculate_totals();
     $order->reduce_order_stock();
     $order->update_status('processing');
     $data = array($order);
     DABBA_API_Output::get()->output(true, 200, '', $data);
 }