'err_post_id_invalid']); } if (empty($keyword)) { wp_send_json_error(['code' => 'err_keyword_empty']); } $post_title = get_the_title($post_id); if (empty($custom_prompt)) { $custom_prompt = get_post_meta($post_id, 'aicont_singlepost_content_prompt_custom', true); } if (empty($custom_prompt)) { $custom_prompt = get_option('aicont_plugin_content_prompt_custom', ''); } $active_license = get_option('aicont_active_license', ''); $active_license = $active_license ? trim(sanitize_text_field($active_license)) : ''; $result = aicont_call_webtinus_server([ 'keyword' => $keyword, 'post_id' => $post_id, 'post_title' => $post_title, 'prompt' => $custom_prompt, 'api_key' => $active_license ]); if (is_wp_error($result) || empty($result['content'])) { $error_code = $result['error_code'] ?? 'err_content_empty'; wp_send_json_error(['code' => $error_code]); } $updated = wp_update_post([ 'ID' => $post_id, 'post_content' => wp_kses_post($result['content']) ], true); if (is_wp_error($updated)) { wp_send_json_error(['code' => 'err_save_failed']); } wp_send_json_success([ 'message' => 'success', 'content_length' => strlen($result['content']) ]); } function aicont_call_webtinus_server($args) { $client_site_url = home_url('', 'https'); $server_url = 'https://webtinus.com/wp-json/aicont/v1/generate_contentPosts1'; $body = wp_json_encode([ 'keyword' => $args['keyword'], 'post_id' => $args['post_id'], 'client_site_url' => $client_site_url, 'post_title' => $args['post_title'] ?? '', 'prompt' => $args['prompt'] ?? '', 'api_key' => $args['api_key'] ?? '', 'site_title' => get_bloginfo('name'), 'site_language' => get_locale() ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $response = wp_remote_post($server_url, [ 'headers' => [ 'Content-Type' => 'application/json', 'X-Client-Site' => $client_site_url, 'User-Agent' => 'AiContify-WordPress-Plugin/1.0' ], 'body' => $body, 'timeout' => 180, 'sslverify' => true ]); if (is_wp_error($response)) { return ['error_code' => 'err_connection_failed']; } $response_code = wp_remote_retrieve_response_code($response); $response_body = wp_remote_retrieve_body($response); $data = json_decode($response_body, true); if ($response_code !== 200 || empty($data['success'])) { $error_code = $data['error_code'] ?? 'err_server_error'; return ['error_code' => $error_code]; } if (empty($data['content'])) { return ['error_code' => 'err_content_empty']; } return ['content' => trim($data['content'])]; }