user profile edit actions

This commit is contained in:
GotPPay
2018-09-11 09:26:00 +02:00
committed by Bilal Catic
parent b974eab225
commit a79ef1044c
4 changed files with 214 additions and 56 deletions

View File

@@ -8,9 +8,11 @@ defined( 'ABSPATH' ) || exit;
class Wiaas_User {
public static function init() {
include_once dirname( __FILE__ ) . '/user/class-wiaas-user-profile.php';
add_action('init', array(__CLASS__, 'load_user_organization'));
add_action('plugins_loaded', array(__CLASS__, 'remove_default_user_groups'), 30);
add_action('woocommerce_rest_insert_customer', array(__CLASS__, 'test_method'), 10, 3);
add_action('woocommerce_rest_insert_customer', array(__CLASS__, 'add_meta_data_to_customer'), 10, 3);
add_filter('woocommerce_rest_prepare_customer', array(__CLASS__, 'transform_rest_customer'), 10, 3);
add_filter('jwt_auth_token_before_dispatch', array(__CLASS__, 'transform_jwt_token_response'), 10, 2);
@@ -23,7 +25,7 @@ class Wiaas_User {
* @param WP_REST_Request $request Request object.
* @param boolean $creating True when creating customer, false when updating customer.
*/
public static function test_method($customer, $request, $creating){
public static function add_meta_data_to_customer($customer, $request, $creating){
if (isset($request['phone'])){
update_user_meta( $customer->ID, 'phone', $request['phone'] );
}
@@ -35,6 +37,118 @@ class Wiaas_User {
if (isset($request['companyName'])){
update_user_meta( $customer->ID, 'company_name', $request['companyName']);
}
if (isset($request['deliveryAddress'])){
$received_address = json_decode($request['deliveryAddress']);
$delivery_addresses = get_user_meta($customer->ID, 'delivery_addresses', true) ?: [];
if ($received_address->id){
$updated = array(
'id' => $received_address->id,
'countryName' => Wiaas_User_Profile::get_country_name_by_id($received_address->idCountrySelected),
'deliveryMail' => $received_address->deliveryMail,
'idCountrySelected' => $received_address->idCountrySelected,
'city' => $received_address->city,
'detailedAddress' => $received_address->detailedAddress,
'zipCode' => $received_address->zipCode
);
foreach($delivery_addresses as $key => $address){
if ($address['id'] === $received_address->id){
$delivery_addresses[$key] = $updated;
break;
}
}
}else{
$new_delivery_address = array(
'id' => time(),
'countryName' => Wiaas_User_Profile::get_country_name_by_id($received_address->idCountrySelected),
'deliveryMail' => $received_address->deliveryMail,
'idCountrySelected' => $received_address->idCountrySelected,
'city' => $received_address->city,
'detailedAddress' => $received_address->detailedAddress,
'zipCode' => $received_address->zipCode
);
array_push($delivery_addresses, $new_delivery_address);
}
update_user_meta( $customer->ID, 'delivery_addresses', $delivery_addresses);
//delete_user_meta ($customer->ID, 'delivery_addresses');
}
if (isset($request['billingAddress'])){
$received_address = json_decode($request['billingAddress']);
$billing_addresses = get_user_meta($customer->ID, 'billing_addresses', true) ?: [];
if ($received_address->id){
$updated = array(
'id' => $received_address->id,
'countryName' => Wiaas_User_Profile::get_country_name_by_id($received_address->idCountrySelected),
'deliveryMail' => $received_address->deliveryMail,
'idCountrySelected' => $received_address->idCountrySelected,
'city' => $received_address->city,
'detailedAddress' => $received_address->detailedAddress,
'zipCode' => $received_address->zipCode,
'firstName' => $received_address->firstName,
'lastName' => $received_address->lastName,
'invoiceMail' => $received_address->invoiceMail
);
foreach($billing_addresses as $key => $address){
if ($address['id'] === $received_address->id){
$billing_addresses[$key] = $updated;
break;
}
}
}else{
$new_billing_address = array(
'id' => time(),
'countryName' => Wiaas_User_Profile::get_country_name_by_id($received_address->idCountrySelected),
'deliveryMail' => $received_address->deliveryMail,
'idCountrySelected' => $received_address->idCountrySelected,
'city' => $received_address->city,
'detailedAddress' => $received_address->detailedAddress,
'zipCode' => $received_address->zipCode,
'firstName' => $received_address->firstName,
'lastName' => $received_address->lastName,
'invoiceMail' => $received_address->invoiceMail
);
array_push($billing_addresses, $new_billing_address);
}
update_user_meta( $customer->ID, 'billing_addresses', $billing_addresses);
//delete_user_meta ($customer->ID, 'delivery_addresses');
}
if (isset($request['removeDeliveryAddress'])){
$addressID = $request['removeDeliveryAddress'];
$delivery_addresses = get_user_meta($customer->ID, 'delivery_addresses', true) ?: [];
$counter = 0;
foreach($delivery_addresses as $key => $address){
if ($address['id'] == $addressID){
array_splice($delivery_addresses, $counter, 1);
break;
}
$counter++;
}
update_user_meta( $customer->ID, 'delivery_addresses', $delivery_addresses);
}
if (isset($request['removeBillingAddress'])){
$addressID = $request['removeBillingAddress'];
$billing_addresses = get_user_meta($customer->ID, 'billing_addresses', true) ?: [];
$counter = 0;
foreach($billing_addresses as $key => $address){
if ($address['id'] == $addressID){
array_splice($billing_addresses, $counter, 1);
break;
}
$counter++;
}
update_user_meta( $customer->ID, 'billing_addresses', $billing_addresses);
}
}
public static function load_user_organization() {
@@ -71,8 +185,8 @@ class Wiaas_User {
'phone' => get_user_meta($user_id, 'phone', true),
'companyName' => get_user_meta($user_id, 'company_name', true),
'vatCode' => get_user_meta($user_id, 'vat_code', true),
'billingAddresses' => [],
'profileAddresses' => [],
'billingAddresses' => get_user_meta($user_id, 'billing_addresses', true) ?: [],
'deliveryAddresses' => get_user_meta($user_id, 'delivery_addresses', true) ?: [],
'userType' => $data['role']
);