function woju_capi_contact_handler() { if (!defined('META_CAPI_TOKEN') || !defined('META_PIXEL_ID')) { wp_send_json_error('Missing config'); wp_die(); } $event_id = sanitize_text_field($_POST['event_id'] ?? ''); $page_url = esc_url_raw($_POST['page_url'] ?? ''); $fbp = sanitize_text_field($_POST['fbp'] ?? ''); $fbc = sanitize_text_field($_POST['fbc'] ?? ''); $client_ip = $_SERVER['REMOTE_ADDR'] ?? ''; $user_agent = $_SERVER['HTTP_USER_AGENT'] ?? ''; $payload = [ 'data' => [[ 'event_name' => 'Contact', 'event_time' => time(), 'event_id' => $event_id, 'event_source_url' => $page_url, 'action_source' => 'website', 'user_data' => array_filter([ 'client_ip_address' => $client_ip, 'client_user_agent' => $user_agent, 'fbp' => $fbp ?: null, 'fbc' => $fbc ?: null, ]), ]], ]; $response = wp_remote_post( "https://graph.facebook.com/v21.0/" . META_PIXEL_ID . "/events?access_token=" . META_CAPI_TOKEN, [ 'body' => wp_json_encode($payload), 'headers' => ['Content-Type' => 'application/json'], 'timeout' => 8, ] ); if (is_wp_error($response)) { error_log('WOJU CAPI ERROR: ' . $response->get_error_message()); wp_send_json_error(['fb_error' => $response->get_error_message()]); wp_die(); } $body = wp_remote_retrieve_body($response); $code = wp_remote_retrieve_response_code($response); error_log('WOJU CAPI RESPONSE [' . $code . ']: ' . $body); wp_send_json_success(['fb_response' => $body, 'fb_code' => $code]); wp_die(); }