You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Am working on a WordPress plugin where the updates will be done on the external server. I added the below code and everything is working good. But once it updated the plugin folder name will be appended with five digit characters followed by dash.
for example :
before update plugin name - plugin-name
after update plugin name - plugin-name-IbzGAQ
Am not sure why its auto append at end.
<?php
$api_url = 'http://server_address/update/';
$plugin_slug = 'plugin_slug';
$plugin_name = 'plugin_name';
// Take over the update check
add_filter('pre_set_site_transient_update_plugins', 'check_for_plugin_update');
function check_for_plugin_update($checked_data) {
global $api_url, $plugin_slug, $wp_version, $plugin_name;
$response = '';
//Comment out these two lines during testing.
if (empty($checked_data->checked))
return $checked_data;
$args = array(
'slug' => $plugin_slug,
'version' => $checked_data->checked[$plugin_slug .'/'. $plugin_name .'.php'],
);
$request_string = array(
'body' => array(
'action' => 'basic_check',
'request' => serialize($args)
),
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo('url')
);
// Start checking for an update
$raw_response = wp_remote_post($api_url, $request_string);
if (!is_wp_error($raw_response) && ($raw_response['response']['code'] == 200)){
$response = unserialize($raw_response['body']);
if($response->version == 'invalid'){
update_option('bc_rb_payment_info','no');
return 'invalid';
}
}
if (is_object($response) && !empty($response)) // Feed the update data into WP updater
$checked_data->response[$plugin_slug .'/'. $plugin_name .'.php'] = $response;
return $checked_data;
}
// Take over the Plugin info screen
add_filter('plugins_api', 'plugin_api_call', 10, 3);
function plugin_api_call($def, $action, $args) {
global $plugin_slug, $api_url, $wp_version,$plugin_name;
if (!isset($args->slug) || ($args->slug != $plugin_slug))
return false;
// Get the current version
$plugin_info = get_site_transient('update_plugins');
$current_version = $plugin_info->checked[$plugin_slug .'/'. $plugin_name .'.php'];
$args->version = $current_version;
$request_string = array(
'body' => array(
'action' => $action,
'request' => serialize($args)
),
'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo('url')
);
$request = wp_remote_post($api_url, $request_string);
if (is_wp_error($request)) {
$res = new WP_Error('plugins_api_failed', __('An Unexpected HTTP Error occurred during the API request.</p> <p><a href="?" onclick="document.location.reload(); return false;">Try again</a>'), $request->get_error_message());
} else {
if ($request['response']['message'] == 'OK' || $request['response']['code'] == 200){
$res = unserialize($request['body']);
} else {
$res = new WP_Error('plugins_api_failed', __('An unknown error occurred'), $request['body']);
}
}
return $res;
}
The text was updated successfully, but these errors were encountered:
Am working on a WordPress plugin where the updates will be done on the external server. I added the below code and everything is working good. But once it updated the plugin folder name will be appended with five digit characters followed by dash.
Am not sure why its auto append at end.
The text was updated successfully, but these errors were encountered: