Example #1
0
 /**
  * @param array $args
  *
  * @return \WP_Error
  */
 public function create_location($args = [])
 {
     $defaults = array('id' => 0, 'name' => '', 'address_1' => '', 'address_2' => '', 'city' => '', 'state' => '', 'zip' => '', 'country' => '');
     $fields = wp_parse_args($args, $defaults);
     $location_id = intval($fields['id']);
     unset($fields['id']);
     // validation
     if (empty($fields['name'])) {
         return new \WP_Error('no-name', __('No location name provided.', 'wp-erp'));
     }
     if (empty($fields['address_1'])) {
         return new \WP_Error('no-address_1', __('No address provided.', 'wp-erp'));
     }
     if (empty($fields['country'])) {
         return new \WP_Error('no-country', __('No country provided.', 'wp-erp'));
     }
     $location = new Company_Locations();
     if (!$location_id) {
         $location->create($fields);
         do_action('erp_company_location_new', $location->id, $fields);
     } else {
         $location->find($location_id)->update($fields);
         do_action('erp_company_location_updated', $location_id, $fields);
     }
 }