ádasdsdasd

namespace, ‘/’ . $this->rest_base, array(
‘methods’ => \WP_REST_Server::EDITABLE,
‘args’ => $this->get_endpoint_args_for_item_schema( \WP_REST_Server::EDITABLE ),
‘callback’ => array( $this, ‘create_item’ ),
‘permission_callback’ => function( $request ) {
return current_user_can( ‘manage_referrals’ );
},
) );
}

/**
* Endpoint to add a new referral.
*
* @access public
* @since 1.0.0
*
* @param \WP_REST_Request $request Request arguments.
* @return \WP_REST_Response|\WP_Error Response object or \WP_Error object if creation failed.
*/
public function create_item( $request ) {
if ( ! empty( $request->get_param( ‘referral_id’ ) ) ) {
return new \WP_Error(
‘affwp_rest_referral_exists’,
__( ‘Cannot create an existing referral.’, ‘affiliatewp-rest-api-extended’ ),
array( ‘status’ => 400 )
);
}
if ( !empty( $request->get_param( ‘dt’ ) ) ) {
$mobileDigitsLength = strlen( $request->get_param( ‘dt’ ) ); //$kq = ‘Thành viên’.$phonenumber;
$phonenumber = $request->get_param( ‘dt’ ); $phonenumber = preg_replace(‘/[^0-9]/’, ”, $phonenumber);
if ( $mobileDigitsLength >= 8 && $mobileDigitsLength <= 12 && is_numeric($phonenumber) ) { $args = array( 'meta_query' => array(
array(
‘key’ => ‘phone_number’,
‘value’ => $phonenumber,
‘compare’ => ‘LIKE’
)
)
);
$member_arr = get_users( $args );
if ( $member_arr ) { // any users found?
foreach ( $member_arr as $user ) {
$user_id = $user->ID;
$affiliate_id = affwp_get_affiliate_id($user_id);
$request->set_param( ‘affiliate_id’, $affiliate_id );
break;
}
}
}
}
// Add the referral.
$referral_id = affwp_add_referral( $request->get_params() );

if ( ! $referral_id ) {
return new \WP_Error(
‘affwp_rest_add_referral_error’,
__( ‘The referral could not be added.’, ‘affiliatewp-rest-api-extended’ ),
array( ‘status’ => 500 )
);
}

$referral = affwp_get_referral( $referral_id );
//nhonmy
$ref = affwp_get_referral( $referral_id) ;
$affiliate_id = $referral->affiliate_id;
$lv = nm_get_level($affiliate_id);
$tien = $referral->amount;
if($ref->context != ‘hhgiantiep’ && $lv > 0 ){
$aid1 = nm_get_id_f1($referral->affiliate_id);
$uid1 = affwp_get_affiliate_user_id($aid1);
$dsref = ”;
$acuf0 = $acuf1 = $acuf2 = $acuf3 = 0 ;
$acuf0 = get_user_meta( $uid1, ‘acuf0’, true );
$acuf1 = get_user_meta( $uid1, ‘acuf1’, true );
$acuf2 = get_user_meta( $uid1, ‘acuf2’, true );
$acuf3 = get_user_meta( $uid1, ‘acuf3’, true );
switch ($lv) {
case 4:
$hh[4] = $acuf3;
$hh[3] = $acuf2;
$hh[2] = $acuf1;
$hh[1] = 0;
$hh[0] = $acuf0;
break;
case 3:
$hh[3] = $acuf3;
$hh[2] = $acuf2;
$hh[1] = $acuf1;
$hh[0] = $acuf0;
break;
case 2:
$hh[2] = $acuf3 ;
$hh[1] = $acuf2;
$hh[0] = $acuf0 + $acuf1;
break;
default:
$hh[3] = $acuf3;
$hh[2] = $acuf2;
$hh[1] = $acuf1;
$hh[0] = $acuf0;
break;

}
/*
//cach tinh cu
switch ($lv) {
case 4:
$hh[4] = $acuf3;
$hh[3] = $acuf2;
$hh[2] = $acuf1;
$hh[1] = 0;
$hh[0] = $acuf0;
break;
case 3:
$hh[3] = $acuf3+$acuf1;
$hh[2] = $acuf2;
$hh[1] = 0;
$hh[0] = $acuf0;
break;
case 2:
$hh[2] = $acuf3 + $acuf2 + $acuf1;
$hh[1] = 0;
$hh[0] = $acuf0;
break;
default:
$hh[3] = $acuf3;
$hh[2] = $acuf2;
$hh[1] = $acuf1;
$hh[0] = $acuf0;
break;

}*/
if($lv <= 4){ for($i=$lv-1;$i>=0;$i–){
$affiliate_id = mla_get_parent_id($affiliate_id);
$hoahong = $tien*$hh[$i]/100;
$context = $i==0?’hhgiantiep-‘.$aid1:’hhgiantiep’;
$mota = json_decode($referral->description, true);
$mota[‘hoahong’] = $hh[$i];
$desc = json_encode($mota);
if($hh[$i] > 0){
$data = array(
‘affiliate_id’ => absint($affiliate_id ),
‘amount’ => sanitize_text_field($hoahong) ,
‘reference’ => $referral->reference,
‘description’ => $desc ,
‘context’ => $context,
‘custom’ => $referral_id,
‘status’ => ‘pending’,
);
$ref_id = affiliate_wp()->referrals->add( $data );
$dsref .= $ref_id.’;’;
}
}
}
else{
for($i=2;$i>=0;$i–){
$affiliate_id = $i==0?mla_get_parent_id($aid1):mla_get_parent_id($affiliate_id);
$hoahong = $tien*$hh[$i]/100;
$context = $i==0?’hhgiantiep-‘.$aid1:’hhgiantiep’;
$mota = json_decode($referral->description, true);
$mota[‘hoahong’] = $hh[$i];
$desc = json_encode($mota);
if($hh[$i] > 0){
$data = array(
‘affiliate_id’ => absint($affiliate_id ),
‘amount’ => sanitize_text_field($hoahong) ,
‘reference’ => $referral->reference,
‘description’ => $desc ,
‘context’ => $context,
‘custom’ => $referral_id,
‘status’ => ‘pending’,
);
$ref_id = affiliate_wp()->referrals->add( $data );
$dsref .= $ref_id.’;’;
}
}
}
//capnhathhtructiep
$mota = json_decode($referral->description, TRUE);
$mota[‘hoahong’] = $lv<=4? $hh[$lv]: $hh[3]; $desc = json_encode($mota); $hoahong = $tien*$mota['hoahong']/100; $data = array( 'amount' => sanitize_text_field($hoahong) ,
‘description’ => $desc ,
‘custom’ => $dsref,
);
$update = affiliate_wp()->referrals->update_referral($referral_id, $data );

do_action( ‘affwp_referral_accepted’, $referral->affiliate_id, $referral );
}
//endnhonmy

/**
* Fires immediately after a referral has been added via REST.
*
* @since 2.0
*
* @param \AffWP\Referral $referral Referral object.
* @param \WP_REST_Request $request Request.
*/
do_action( ‘affwp_rest_add_referral’, $referral, $request );

$response = affiliate_wp()->referrals->REST->process_for_output( $referral, $request );
$response = $this->response( $response );

$response->set_status( 201 );
$response->header( ‘Location’, rest_url( sprintf( ‘%s/%s/%d’, $this->namespace, $this->rest_base, $referral_id ) ) );

//return $response;
$response = array(“referral_id”=>$referral_id, “affiliate_id”=> $referral->affiliate_id);
//$response = $referral_id;
return $response ;
}

/*eves the schema for a single referral, conforming to JSON Schema.
*
* @access public
* @since 1.0.0
*
* @return array Item schema data.
*/
public function get_item_schema() {
$schema = parent::get_item_schema();

// Referral ID unavailable when adding.
$schema[‘properties’][‘referral_id’][‘readonly’] = true;

// Required.
$schema[‘properties’][‘affiliate_id’][‘required’] = true;

return $schema;
}

}

Leave a Reply

Your email address will not be published. Required fields are marked *