Settings', ); $opaigptactions = array_merge( $opaigptactions, $opaigptlinks ); return $opaigptactions; } // enqueue style require( OPAIGPT_PATH.'inc/enqueue.php' ); // page editor require( OPAIGPT_PATH.'/inc/editor/class/class-webdzier-page-editor.php' ); // add menu add_action('admin_menu', 'opaigpt_admin_add_page'); function opaigpt_admin_add_page() { // main menu global $opaigpt_options_page; $opaigpt_options_page = add_menu_page( 'AI ChatGPT Content And Image Generator ', 'AI ChatGPT Content And Image Generator','manage_options', 'opaigpt-settings', false, OPAIGPT_URL.'/assets/img/menu-icon/main-menu.png'); // Submenu Item Api Keys add_submenu_page( 'opaigpt-settings', 'API Settings', 'API Settings','manage_options', 'opaigpt-settings', 'opaigpt_submenu_api_key' ); // Submenu Item Generate Content add_submenu_page( 'opaigpt-settings', 'Generate Content', 'Generate Content', 'manage_options', 'generator-content', 'opaigpt_submenu_generate_content' ); // Submenu Item Generate Image add_submenu_page( 'opaigpt-settings', 'Generate Image', 'Generate Image', 'manage_options', 'generator-image', 'opaigpt_submenu_generate_image' ); // Submenu Item Generate Chat add_submenu_page( 'opaigpt-settings', 'Generate Chat', 'Generate Chat', 'manage_options', 'generator-chat', 'opaigpt_submenu_generate_chat' ); // Submenu Item Help add_submenu_page( 'opaigpt-settings', 'Help', 'Help', 'manage_options', 'opaigpt-help', 'opaigpt_submenu_help' ); // Submenu Item Support add_submenu_page( 'opaigpt-settings', 'Support', 'Support', 'manage_options', 'opaigpt-support', 'opaigpt_submenu_support' ); add_action("load-$opaigpt_options_page", 'opaigpt_plugin_help_tabs'); } require( OPAIGPT_PATH.'inc/api-help-tab/api-help-tab.php' ); // Submenu Item Api Keys callback function opaigpt_submenu_api_key(){ require( OPAIGPT_PATH.'inc/menu-page/api-key.php' ); } // Submenu Item Generate Content callback function opaigpt_submenu_generate_content(){ require( OPAIGPT_PATH.'/inc/menu-page/content-generate.php' ); } // Submenu Item Generate Image callback function opaigpt_submenu_generate_image(){ require( OPAIGPT_PATH.'/inc/menu-page/generate-image.php' ); } // Submenu Item Generate Chat callback function opaigpt_submenu_generate_chat(){ require( OPAIGPT_PATH.'/inc/menu-page/generate-chat.php' ); } // Submenu Item Help callback function opaigpt_submenu_help(){ require( OPAIGPT_PATH.'/inc/menu-page/chatgpt-help.php' ); } // Submenu Item Support callback function opaigpt_submenu_support(){ require( OPAIGPT_PATH.'/inc/menu-page/chatgpt-support.php' ); } } } function opaigpt_ajaxurl_cdata_to_front(){ ?> $model_value, 'prompt' => $mess, 'temperature' => floatval($temperature_value), 'max_tokens' => intval($max_tokens_value), 'frequency_penalty' => floatval($frequency_penalty_value), 'presence_penalty' => floatval($presence_penalty_value), 'n'=>intval($api_n_value) ]); $api_call = wp_remote_post( 'https://api.openai.com/v1/completions', array( 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $token, ), 'body' => $send_json, 'method' => 'POST', 'data_format' => 'body', 'timeout' => 999, ) ); wp_send_json($api_call); wp_die(); } // image generator function opaigpt_ajaxurl_image(){ ?> $mess, 'n'=> intval($num_images_get), 'size'=> $img_size_get ]); $api_call = wp_remote_post( 'https://api.openai.com/v1/images/generations', array( 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $token, ), 'body' => $send_json, 'method' => 'POST', 'data_format' => 'body', 'timeout' => 999, ) ); $data = array('title'=>$mess,'value'=> $api_call); wp_send_json($data); wp_die(); } // save image media add_action('wp_ajax_opai_save_image_media','opaigpt_save_image_media'); function opaigpt_save_image_media() { $opaigpt_result = array('status' => 'error', 'msg' => 'Something went wrong'); if( isset($_POST['image_url']) && !empty($_POST['image_url']) ){ $url = sanitize_url($_POST['image_url']); $image_title = isset($_POST['image_title']) && !empty($_POST['image_title']) ? sanitize_text_field($_POST['image_title']) : ''; $image_alt = isset($_POST['image_alt']) && !empty($_POST['image_alt']) ? sanitize_text_field($_POST['image_alt']) : ''; $image_caption = isset($_POST['image_caption']) && !empty($_POST['image_caption']) ? sanitize_text_field($_POST['image_caption']) : ''; $image_description = isset($_POST['image_description']) && !empty($_POST['image_description']) ? sanitize_text_field($_POST['image_description']) : ''; $opaigpt_image_attachment_id = opaigpt_save_image($url, $image_title); if($opaigpt_image_attachment_id){ wp_update_post(array( 'ID' => $opaigpt_image_attachment_id, 'post_content' => $image_description, 'post_excerpt' => $image_caption )); update_post_meta($opaigpt_image_attachment_id,'_wp_attachment_image_alt', $image_alt); $opaigpt_result['status'] = esc_html__('success','ai-chatgpt-content-and-image-generator'); } else{ $opaigpt_result['msg'] = esc_html__('Can not save image to media library.','ai-chatgpt-content-and-image-generator'); } } wp_send_json($opaigpt_result); } function opaigpt_save_image($imageurl, $opaigpt_title = '') { global $wpdb; $result = false; if(!function_exists('wp_generate_attachment_metadata')){ include_once( ABSPATH . 'wp-admin/includes/image.php' ); } if(!function_exists('download_url')){ include_once( ABSPATH . 'wp-admin/includes/file.php' ); } if(!function_exists('media_handle_sideload')){ include_once( ABSPATH . 'wp-admin/includes/media.php' ); } try { $array = explode('/', getimagesize($imageurl)['mime']); $imagetype = end($array); $uniq_name = md5($imageurl); $filename = $uniq_name . '.' . $imagetype; $checkExist = $wpdb->get_row("SELECT * FROM {$wpdb->postmeta} WHERE meta_value LIKE '%/$filename'"); if($checkExist){ $result = $checkExist->post_id; } else{ $tmp = download_url($imageurl); if ( is_wp_error( $tmp ) ) return false; $args = array( 'name' => $filename, 'tmp_name' => $tmp, ); $attachment_id = media_handle_sideload( $args, 0, '',array( 'post_title' => $opaigpt_title, 'post_content' => $opaigpt_title, 'post_excerpt' => $opaigpt_title )); update_post_meta($attachment_id,'_wp_attachment_image_alt', $opaigpt_title); if(!is_wp_error($attachment_id)){ $imagenew = get_post( $attachment_id ); $fullsizepath = get_attached_file( $imagenew->ID ); $attach_data = wp_generate_attachment_metadata( $attachment_id, $fullsizepath ); wp_update_attachment_metadata( $attachment_id, $attach_data ); $result = $attachment_id; } } } catch (\Exception $exception){ } return $result; } // Generate Chat function opaigpt_chat_ajaxurl_cdata_to_front(){ ?> $model_value, "prompt" => "".$language_existing.":/n/n ".$chatmess."\n\nHuman: ?\nAI:", 'temperature' => floatval($temperature_value), 'max_tokens' => intval($max_tokens_value), 'frequency_penalty' => floatval($frequency_penalty_value), 'presence_penalty' => floatval($presence_penalty_value), 'n' => intval($api_n_value), "stop" => ["Human:", "AI:"] ]); $chatapi_call = wp_remote_post( 'https://api.openai.com/v1/completions', array( 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $token, ), 'body' => $chatsend_json, 'method' => 'POST', 'data_format' => 'body', 'timeout' => 999, ) ); wp_send_json($chatapi_call); wp_die(); }