Changeset 2396062
- Timestamp:
- 10/08/2020 12:47:58 PM (5 years ago)
- File:
-
- 1 edited
-
contentstudio/trunk/contentstudio-plugin.php (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
contentstudio/trunk/contentstudio-plugin.php
r2392209 r2396062 3 3 Plugin Name: ContentStudio 4 4 Description: ContentStudio provides you with powerful blogging & social media tools to keep your audience hooked by streamlining the process for you to discover and share engaging content on multiple blogging & social media networks 5 Version: 1.0. 65 Version: 1.0.7 6 6 Author: ContentStudio 7 7 Author URI: http://contentstudio.io/ … … 38 38 39 39 protected $assets = 'https://contentstudio.io/img'; 40 41 private $version = "1.0.7"; 40 42 41 43 protected $contentstudio_id = ''; … … 122 124 add_action('init', [$this, 'cstu_is_installed']); 123 125 add_action('init', [$this, 'cstu_unset_token']); 124 126 add_action('init', [$this, 'cstu_get_metadata']); 125 127 add_action('init', [$this, 'cstu_is_upload_dir_exists']); 126 128 add_action('wp_head', [$this, 'add_cstu_custom_stylesheet']); … … 531 533 532 534 /** 535 * Gets blog meta data 536 */ 537 538 public function cstu_get_metadata() 539 { 540 if (isset($_REQUEST['cstu_get_metadata']) && ($_REQUEST['cstu_get_metadata'])) { 541 542 //$token = get_option('contentstudio_token'); 543 544 $varsbloginfo = array( 545 "name" => get_bloginfo( "name" ), 546 "description" => get_bloginfo( "description" ), 547 "wpurl" => get_bloginfo( "wpurl" ), 548 "url" => get_bloginfo( "url" ), 549 "language" => get_bloginfo( "language" ), 550 "charset" => get_bloginfo( 'charset' ), 551 "version" => get_bloginfo( "version" ), 552 "timezone_string" => get_option( "timezone_string" ), 553 "gmt_offset" => get_option( "gmt_offset" ), 554 "server_time" => time(), 555 "server_date" => date( 'c' ), 556 "token" => get_option('contentstudio_token'), 557 //"is_connected" => $this->is_cstu_connected($token), 558 "plugin_version" => $this->version, 559 "php_version" => PHP_VERSION, 560 "php_disabled_fn" => ini_get( 'disable_functions' ), 561 "php_disabled_cl" => ini_get( 'disable_classes' ), 562 //"use_wp_json_encode" => $this->use_wp_json_encode, 563 //"first_transport" => $http->_get_first_available_transport( $this->api ), 564 // misc blog // 565 "site_url" => get_option( 'siteurl' ), 566 "pingback_url" => get_bloginfo( "pingback_url" ), 567 "rss2_url" => get_bloginfo( "rss2_url" ), 568 ); 569 570 $varsbloginfo["debug"] = array(); 571 572 $theme = wp_get_theme(); 573 $varsbloginfo["debug"]["theme"] = array(); 574 $varsbloginfo["debug"]["theme"]["Name"] = $theme->get( 'Name' ); 575 $varsbloginfo["debug"]["theme"]["ThemeURI"] = $theme->get( 'ThemeURI' ); 576 $varsbloginfo["debug"]["theme"]["Description"] = $theme->get( 'Description' ); 577 $varsbloginfo["debug"]["theme"]["Author"] = $theme->get( 'Author' ); 578 $varsbloginfo["debug"]["theme"]["AuthorURI"] = $theme->get( 'AuthorURI' ); 579 $varsbloginfo["debug"]["theme"]["Version"] = $theme->get( 'Version' ); 580 $varsbloginfo["debug"]["theme"]["Template"] = $theme->get( 'Template' ); 581 $varsbloginfo["debug"]["theme"]["Status"] = $theme->get( 'Status' ); 582 $varsbloginfo["debug"]["theme"]["Tags"] = $theme->get( 'Tags' ); 583 $varsbloginfo["debug"]["theme"]["TextDomain"] = $theme->get( 'TextDomain' ); 584 $varsbloginfo["debug"]["theme"]["DomainPath"] = $theme->get( 'DomainPath' ); 585 586 echo json_encode([ 587 'status' => true, 588 'message' => 'Meta Data Of Blog', 589 'usermetadeata' => $varsbloginfo, 590 ]); 591 die(); 592 } 593 } 594 595 /** 533 596 * Get a list of blog authors 534 597 */ … … 637 700 public function cstu_create_new_post() 638 701 { 702 $varsbloginfo = ""; 639 703 if (isset($_REQUEST) && isset($_REQUEST['cstu_create_new_post']) && isset($_REQUEST['token'])) { 640 704 … … 735 799 $checker = $_REQUEST['post']['featured_image']; 736 800 //error_log( print_r( $checker, true ) ); 801 $status_code = wp_remote_get($_REQUEST['post']['featured_image'])['response']['code']; 802 803 // if the status is valid process for upload. 804 805 if ($status_code == 301 || $status_code == 200) { 806 $img = $this->cstu_generate_image($_REQUEST['post']['featured_image'], $post); 807 if ($img['status']) { 808 echo json_encode([ 809 'status' => true, 810 'post_id' => $get_post->ID, 811 'link' => get_permalink($get_post->ID), 812 813 ]); 814 die(); 815 } else { 816 echo json_encode([ 817 'status' => false, 818 'warning_message' => $img['message'], 819 'post_id' => $get_post->ID, 820 'link' => get_permalink($get_post->ID), 821 ]); 822 die(); 823 } 824 } else { 825 echo json_encode([ 826 'status' => false, 827 'warning_message' => 'Post featured image seems to be down. Image HTTP status code is '.$status_code, 828 'post_id' => $get_post->ID, 829 'link' => get_permalink($get_post->ID)//get_post_permalink($get_post->ID), 830 ]); 831 die(); 832 } 833 } else { 834 echo json_encode([ 835 'status' => true, 836 'post_id' => $get_post->ID, 837 'link' => get_permalink($get_post->ID), 838 ]); // get_post_permalink($get_post->ID) 839 die(); 840 } 841 } else { 842 echo json_encode([ 843 'status' => false, 844 'message' => self::INVALID_MESSAGE_POST_API, 845 ]); 846 die(); 847 } 848 } 849 /*else { 850 echo json_encode(['status' => false, 'message' => "error"]); 851 die(); 852 }*/ 853 } 854 855 856 /** 857 * Updates an existing WordPress post, action is called from the REMOTE ContentStudio Server. 858 * 859 */ 860 public function cstu_update_post() 861 { 862 if (isset($_REQUEST) && isset($_REQUEST['cstu_update_post']) && isset($_REQUEST['token'])) { 863 864 // validate the token 865 866 $valid = $this->do_validate_cstu_token($_REQUEST['token']); 867 if ($valid) { 868 869 // request post title is available 870 871 // if (isset($_REQUEST['post'])) { 872 // $post_title = wp_strip_all_tags($_REQUEST['post']['post_title']); 873 // // check for the post title and make sure it does not exists. 874 875 // if (isset($post_title) && $post_title) { 876 // global $wpdb; 877 // $post_title = wp_strip_all_tags($post_title); 878 // $sql = $wpdb->prepare("select ID from ".$wpdb->posts." where post_title='%s' AND post_status = 'publish'", $post_title); 879 // $get_posts_list = $wpdb->get_results($sql); 880 // if (count($get_posts_list)) { 881 // $cstu_post_update = get_page_by_title( $post_title, '', 'post' ); 882 // $getid = 0; 883 // $getid = $cstu_post_update->ID; 884 // echo json_encode([ 885 // 'status' => false, 886 // 'message' => "Post already exists on your blog with title '$getid'.", 887 // ]); 888 // die(); 889 // } 890 // } 891 // } 892 893 // get list of categories 894 895 $categories = explode(',', sanitize_text_field($_REQUEST['post']['post_category'])); 896 897 $this->kses_remove_filters(); 898 $post_id = 0; 899 if (isset($_REQUEST['post']['post_id']) && $_REQUEST['post']['post_id']) { 900 $post_id = (int) sanitize_text_field($_REQUEST['post']['post_id']); 901 } 902 903 // update the post 904 905 $post_author = sanitize_text_field($_REQUEST['post']['post_author']); 906 $post_content = $_REQUEST['post']['post_content']; 907 $post_status = sanitize_text_field($_REQUEST['post']['post_status']); 908 909 // sanitize title per https://codex.wordpress.org/Function_Reference/wp_insert_post#Security // 910 911 $post = wp_update_post([ 912 'ID' => $post_id, 913 'post_title' => $_REQUEST['post']['post_title'], 914 'post_author' => $post_author, 915 'post_content' => $post_content, 916 'post_status' => $post_status, 917 'post_category' => $categories, 918 ]); 919 920 if (! $post or $post == 0) { 921 $post = wp_update_post([ 922 'post_title' => $_REQUEST['post']['post_title'], 923 'post_author' => $post_author, 924 'post_content' => $post_content, 925 'post_status' => $post_status, 926 'post_category' => $categories, 927 ]); 928 global $wpdb; 929 $wpdb->update($wpdb->posts, ['post_title' => wp_strip_all_tags((string) $post_title)], ['ID' => $post]); 930 // slug scenario 931 } 932 933 // get post 934 935 $get_post = get_post($post); 936 937 // set the tags 938 939 if (isset($_REQUEST['post']['terms'])) { 940 $this->cstu_set_tags($get_post); 941 } 942 943 // download the image to the user server. 944 945 if ($post && $post > 0) { 946 $this->cstu_download_images($post); 947 } 948 949 // seo settings 950 951 $this->set_cstu_metadata_post($get_post); 952 $this->set_cstu_yoast_settinsg($get_post); 953 $this->set_cstu_all_in_one_seo($get_post); 954 955 // reload the post again to get the latest url. 956 957 if (isset($_REQUEST['post']['featured_image']) && $_REQUEST['post']['featured_image']) { 958 // perform http request to see the status code of the image. 737 959 $status_code = wp_remote_get($_REQUEST['post']['featured_image'])['response']['code']; 738 960 … … 788 1010 } 789 1011 790 791 /**792 * Updates an existing WordPress post, action is called from the REMOTE ContentStudio Server.793 *794 */795 public function cstu_update_post()796 {797 if (isset($_REQUEST) && isset($_REQUEST['cstu_update_post']) && isset($_REQUEST['token'])) {798 799 // validate the token800 801 $valid = $this->do_validate_cstu_token($_REQUEST['token']);802 if ($valid) {803 804 // request post title is available805 806 // if (isset($_REQUEST['post'])) {807 // $post_title = wp_strip_all_tags($_REQUEST['post']['post_title']);808 // // check for the post title and make sure it does not exists.809 810 // if (isset($post_title) && $post_title) {811 // global $wpdb;812 // $post_title = wp_strip_all_tags($post_title);813 // $sql = $wpdb->prepare("select ID from ".$wpdb->posts." where post_title='%s' AND post_status = 'publish'", $post_title);814 // $get_posts_list = $wpdb->get_results($sql);815 // if (count($get_posts_list)) {816 // $cstu_post_update = get_page_by_title( $post_title, '', 'post' );817 // $getid = 0;818 // $getid = $cstu_post_update->ID;819 // echo json_encode([820 // 'status' => false,821 // 'message' => "Post already exists on your blog with title '$getid'.",822 // ]);823 // die();824 // }825 // }826 // }827 828 // get list of categories829 830 $categories = explode(',', sanitize_text_field($_REQUEST['post']['post_category']));831 832 $this->kses_remove_filters();833 $post_id = 0;834 if (isset($_REQUEST['post']['post_id']) && $_REQUEST['post']['post_id']) {835 $post_id = (int) sanitize_text_field($_REQUEST['post']['post_id']);836 }837 838 // update the post839 840 $post_author = sanitize_text_field($_REQUEST['post']['post_author']);841 $post_content = $_REQUEST['post']['post_content'];842 $post_status = sanitize_text_field($_REQUEST['post']['post_status']);843 844 // sanitize title per https://codex.wordpress.org/Function_Reference/wp_insert_post#Security //845 846 $post = wp_update_post([847 'ID' => $post_id,848 'post_title' => $_REQUEST['post']['post_title'],849 'post_author' => $post_author,850 'post_content' => $post_content,851 'post_status' => $post_status,852 'post_category' => $categories,853 ]);854 855 if (! $post or $post == 0) {856 $post = wp_update_post([857 'post_title' => $_REQUEST['post']['post_title'],858 'post_author' => $post_author,859 'post_content' => $post_content,860 'post_status' => $post_status,861 'post_category' => $categories,862 ]);863 global $wpdb;864 $wpdb->update($wpdb->posts, ['post_title' => wp_strip_all_tags((string) $post_title)], ['ID' => $post]);865 // slug scenario866 }867 868 // get post869 870 $get_post = get_post($post);871 872 // set the tags873 874 if (isset($_REQUEST['post']['terms'])) {875 $this->cstu_set_tags($get_post);876 }877 878 // download the image to the user server.879 880 if ($post && $post > 0) {881 $this->cstu_download_images($post);882 }883 884 // seo settings885 886 $this->set_cstu_metadata_post($get_post);887 $this->set_cstu_yoast_settinsg($get_post);888 $this->set_cstu_all_in_one_seo($get_post);889 890 // reload the post again to get the latest url.891 892 if (isset($_REQUEST['post']['featured_image']) && $_REQUEST['post']['featured_image']) {893 // perform http request to see the status code of the image.894 $status_code = wp_remote_get($_REQUEST['post']['featured_image'])['response']['code'];895 896 // if the status is valid process for upload.897 898 if ($status_code == 301 || $status_code == 200) {899 $img = $this->cstu_generate_image($_REQUEST['post']['featured_image'], $post);900 if ($img['status']) {901 echo json_encode([902 'status' => true,903 'post_id' => $get_post->ID,904 'link' => get_permalink($get_post->ID),905 ]);906 die();907 } else {908 echo json_encode([909 'status' => false,910 'warning_message' => $img['message'],911 'post_id' => $get_post->ID,912 'link' => get_permalink($get_post->ID),913 ]);914 die();915 }916 } else {917 echo json_encode([918 'status' => false,919 'warning_message' => 'Post featured image seems to be down. Image HTTP status code is '.$status_code,920 'post_id' => $get_post->ID,921 'link' => get_permalink($get_post->ID)//get_post_permalink($get_post->ID),922 ]);923 die();924 }925 } else {926 echo json_encode([927 'status' => true,928 'post_id' => $get_post->ID,929 'link' => get_permalink($get_post->ID),930 ]); // get_post_permalink($get_post->ID)931 die();932 }933 } else {934 echo json_encode([935 'status' => false,936 'message' => self::INVALID_MESSAGE_POST_API,937 ]);938 die();939 }940 }941 /*else {942 echo json_encode(['status' => false, 'message' => "error"]);943 die();944 }*/945 }946 947 1012 /** 948 1013 * Set the meta description so that when we publish our content, we show that to the end-user instead of our personal one. … … 1001 1066 public function set_cstu_yoast_settinsg($post) 1002 1067 { 1003 //if ($this->is_yoast_active()) {1068 if ($this->is_yoast_active()) { 1004 1069 global $wpdb; 1005 1070 $sql = $wpdb->prepare("select object_id from ".$wpdb->prefix."yoast_seo_meta where object_id='%d'", $post->ID); … … 1015 1080 "post_id" => $post->ID, 1016 1081 "meta_key" => "_yoast_wpseo_title", 1017 "meta_value" => $_REQUEST['post']['post_meta_title'],1082 "meta_value" => sanitize_text_field($_REQUEST['post']['post_meta_title']), 1018 1083 ]); 1019 1084 $wpdb->insert($wpdb->postmeta, [ 1020 1085 "post_id" => $post->ID, 1021 1086 "meta_key" => "_yoast_wpseo_metadesc", 1022 "meta_value" => $_REQUEST['post']['post_meta_description'],1087 "meta_value" => sanitize_text_field($_REQUEST['post']['post_meta_description']), 1023 1088 ]); 1024 //}1089 } 1025 1090 } 1026 1091
Note: See TracChangeset
for help on using the changeset viewer.