Пример #1
0
 /**
  * Create yourls link on publish if one doesn't exist
  *
  * @param  integer $post_id [description]
  *
  * @return void
  */
 public function yourls_on_save($post_id)
 {
     // bail if this is an import since it'll potentially mess up the process
     if (!empty($_POST['import_id'])) {
         return;
     }
     // run various checks to make sure we aren't doing anything weird
     if (YOURLSCreator_Helper::meta_save_check($post_id)) {
         return;
     }
     // bail if we aren't working with a published or scheduled post
     if (!in_array(get_post_status($post_id), YOURLSCreator_Helper::get_yourls_status('save'))) {
         return;
     }
     // make sure we're working with an approved post type
     if (!in_array(get_post_type($post_id), YOURLSCreator_Helper::get_yourls_types())) {
         return;
     }
     // bail if the API key or URL have not been entered
     if (false === ($api = YOURLSCreator_Helper::get_yourls_api_data())) {
         return;
     }
     // bail if user hasn't checked the box
     if (false === ($onsave = YOURLSCreator_Helper::get_yourls_option('sav'))) {
         return;
     }
     // check for a link and bail if one exists
     if (false !== ($exist = YOURLSCreator_Helper::get_yourls_meta($post_id))) {
         return;
     }
     // get my post URL and title
     $url = YOURLSCreator_Helper::prepare_api_link($post_id);
     $title = get_the_title($post_id);
     // and optional keyword
     $keywd = !empty($_POST['yourls-keyw']) ? YOURLSCreator_Helper::prepare_api_keyword($_POST['yourls-keyw']) : '';
     // set my args for the API call
     $args = array('url' => esc_url($url), 'title' => sanitize_text_field($title), 'keyword' => $keywd);
     // make the API call
     $build = YOURLSCreator_Helper::run_yourls_api_call('shorturl', $args);
     // bail if empty data or error received
     if (empty($build) || false === $build['success']) {
         return;
     }
     // we have done our error checking and we are ready to go
     if (false !== $build['success'] && !empty($build['data']['shorturl'])) {
         // get my short URL
         $shorturl = esc_url($build['data']['shorturl']);
         // update the post meta
         update_post_meta($post_id, '_yourls_url', $shorturl);
         update_post_meta($post_id, '_yourls_clicks', '0');
         // do the action after saving
         do_action('yourls_after_url_save', $post_id, $shorturl);
     }
 }