/** * 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); } }