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();
}