/home/ejrndhmu/.trash/wp-content/plugins/facebook-conversion-pixel/includes/api.php
<?php
function fca_pc_capi_event( ) {
$nonce = sanitize_text_field( $_POST['nonce'] );
if( wp_verify_nonce( $nonce, 'fca_pc_capi_nonce' ) === false ){
wp_send_json_error( 'Unauthorized, please log in and try again.' );
}
fca_pc_multi_capi_event();
wp_send_json_success();
}
add_action( 'wp_ajax_fca_pc_capi_event', 'fca_pc_capi_event' );
add_action( 'wp_ajax_nopriv_fca_pc_capi_event', 'fca_pc_capi_event' );
function fca_pc_multi_capi_event(){
$options = get_option( 'fca_pc', array() );
$pixels = empty( $options['pixels'] ) ? array() : $options['pixels'];
forEach( $pixels as $pixel ){
$pixel = json_decode( stripslashes_deep( $pixel ), TRUE );
$pixel_id = $pixel['pixel'];
$capi_token = empty( $pixel['capi'] ) ? '' : $pixel['capi'];
$test_code = empty( $pixel['test'] ) ? '' : $pixel['test'];
$paused = $pixel['paused'];
if( $pixel_id && !$paused && $capi_token ){
fca_pc_fb_api_call( $pixel_id, $capi_token, $test_code );
}
}
}
function fca_pc_fb_api_call( $pixel, $capi_token, $test_code ){
$url = "https://graph.facebook.com/v11.0/$pixel/events?access_token=$capi_token";
$test_code = empty( $test_code ) ? ']}' : '], "test_event_code": "' . $test_code . '"}';
$event_name = sanitize_text_field( $_POST['event_name'] );
$event_time = sanitize_text_field( $_POST['event_time'] );
$external_id = sanitize_text_field( $_POST['external_id'] );
$event_id = sanitize_text_field( $_POST['event_id'] );
$ip_addr = fca_pc_get_client_ip();
$client_user_agent = sanitize_text_field( $_POST['client_user_agent'] );
$event_source_url = sanitize_text_field( $_POST['event_source_url'] );
$custom_data = sanitize_text_field( json_encode( $_POST['custom_data'] ) );
$array_with_parameters = '{ "data": [
{
"event_name": "' . $event_name . '",
"event_time": ' . $event_time . ',
"event_id": "' . $event_id . '",
"event_source_url": "' . $event_source_url .'",
"action_source": "website",
"user_data": {
"external_id": "' . $external_id . '",
"client_ip_address": "' . $ip_addr . '",
"client_user_agent": "' . $client_user_agent . '"
},
"custom_data": ' . $custom_data . '
}' . $test_code;
$data = wp_remote_request($url, array(
'headers' => array( 'Content-Type' => 'application/json' ),
'body' => $array_with_parameters,
'method' => 'POST',
'data_format' => 'body'
));
$response = wp_remote_retrieve_body( $data );
}