Version Description
Usability Optimization
Download this release
Release Info
Developer | Blog2Social |
Plugin | Blog2Social: Social Media Auto Post & Scheduler |
Version | 5.1.2 |
Comparing to | |
See all releases |
Code changes from version 5.1.1 to 5.1.2
- blog2social.php +2 -2
- includes/B2S/Api/Post.php +9 -16
- includes/B2S/Heartbeat.php +6 -6
- includes/B2S/Ship/Save.php +1 -1
- includes/Loader.php +7 -10
- includes/PRG/Api/Get.php +9 -10
- includes/PRG/Api/Post.php +9 -9
- includes/Tools.php +2 -2
- includes/Util.php +6 -61
- readme.txt +5 -1
blog2social.php
CHANGED
@@ -6,12 +6,12 @@
|
|
6 |
* Author: Blog2Social, Adenion
|
7 |
* Text Domain: blog2social
|
8 |
* Domain Path: /languages
|
9 |
-
* Version: 5.1.
|
10 |
* Author URI: https://www.blog2social.com
|
11 |
* License: GPL2+
|
12 |
*/
|
13 |
//B2SDefine
|
14 |
-
define('B2S_PLUGIN_VERSION', '
|
15 |
define('B2S_PLUGIN_LANGUAGE', serialize(array('de_DE', 'en_US')));
|
16 |
define('B2S_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
17 |
define('B2S_PLUGIN_URL', plugin_dir_url(__FILE__));
|
6 |
* Author: Blog2Social, Adenion
|
7 |
* Text Domain: blog2social
|
8 |
* Domain Path: /languages
|
9 |
+
* Version: 5.1.2
|
10 |
* Author URI: https://www.blog2social.com
|
11 |
* License: GPL2+
|
12 |
*/
|
13 |
//B2SDefine
|
14 |
+
define('B2S_PLUGIN_VERSION', '512');
|
15 |
define('B2S_PLUGIN_LANGUAGE', serialize(array('de_DE', 'en_US')));
|
16 |
define('B2S_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
17 |
define('B2S_PLUGIN_URL', plugin_dir_url(__FILE__));
|
includes/B2S/Api/Post.php
CHANGED
@@ -2,26 +2,19 @@
|
|
2 |
|
3 |
class B2S_Api_Post {
|
4 |
|
5 |
-
public static function post($url = '', $post = array(), $timeout =
|
6 |
if (empty($url) || empty($post)) {
|
7 |
return false;
|
8 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
-
$
|
11 |
-
curl_setopt($ch, CURLOPT_URL, $url . 'post.php');
|
12 |
-
curl_setopt($ch, CURLOPT_POST, true);
|
13 |
-
if ($timeout) {
|
14 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
|
15 |
-
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 18);
|
16 |
-
}
|
17 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
18 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
|
19 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
|
20 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
21 |
-
curl_setopt($ch, CURLOPT_CAINFO, B2S_PLUGIN_DIR . "/includes/cacert.pem");
|
22 |
-
curl_setopt($ch, CURLOPT_USERAGENT, "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)");
|
23 |
-
$result = curl_exec($ch);
|
24 |
-
return $result;
|
25 |
}
|
26 |
|
27 |
}
|
2 |
|
3 |
class B2S_Api_Post {
|
4 |
|
5 |
+
public static function post($url = '', $post = array(), $timeout = 30) {
|
6 |
if (empty($url) || empty($post)) {
|
7 |
return false;
|
8 |
}
|
9 |
+
$args = array(
|
10 |
+
'method' => 'POST',
|
11 |
+
'body' => $post,
|
12 |
+
'timeout' => $timeout,
|
13 |
+
'redirection' => '5',
|
14 |
+
'user-agent' => "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)",
|
15 |
+
);
|
16 |
|
17 |
+
return wp_remote_retrieve_body(wp_remote_post($url . 'post.php', $args));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
|
20 |
}
|
includes/B2S/Heartbeat.php
CHANGED
@@ -62,7 +62,7 @@ class B2S_Heartbeat {
|
|
62 |
$shipData = serialize($sendData);
|
63 |
if (!empty($shipData)) {
|
64 |
$data = array('action' => 'postSchedData', 'data' => $shipData);
|
65 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $data));
|
66 |
foreach ($postData as $k => $value) {
|
67 |
if (!isset($result->content) || !isset($result->content->{$value['id']})) {
|
68 |
$data = array('hook_action' => '1');
|
@@ -98,7 +98,7 @@ class B2S_Heartbeat {
|
|
98 |
|
99 |
if (is_array($sendData) && !empty($sendData) && isset($sendData[0])) {
|
100 |
$tempData = array('action' => 'getSchedData', 'data' => serialize($sendData));
|
101 |
-
$schedResult = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData));
|
102 |
if ($schedResult->result == true) {
|
103 |
foreach ($schedResult->content as $k => $v) {
|
104 |
//V2
|
@@ -226,7 +226,7 @@ class B2S_Heartbeat {
|
|
226 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
227 |
}
|
228 |
$tempData = array('action' => 'updateUserSchedTimePost', 'data' => serialize($sendData));
|
229 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData));
|
230 |
foreach ($sendData as $k => $value) {
|
231 |
//is failed, try again later
|
232 |
$id = $value['id'];
|
@@ -253,7 +253,7 @@ class B2S_Heartbeat {
|
|
253 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
254 |
}
|
255 |
$tempData = array('action' => 'updateUserSchedPost', 'data' => serialize($sendData));
|
256 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData));
|
257 |
foreach ($sendData as $k => $value) {
|
258 |
//is failed, try again later
|
259 |
$id = $value['id'];
|
@@ -277,7 +277,7 @@ class B2S_Heartbeat {
|
|
277 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
278 |
}
|
279 |
$tempData = array('action' => 'deleteUserSchedPost', 'data' => serialize($sendData));
|
280 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData));
|
281 |
foreach ($sendData as $k => $value) {
|
282 |
//is failed, try again later
|
283 |
$id = $value['id'];
|
@@ -301,7 +301,7 @@ class B2S_Heartbeat {
|
|
301 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
302 |
}
|
303 |
$tempData = array('action' => 'deleteUserPublishPost', 'data' => serialize($sendData));
|
304 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData));
|
305 |
foreach ($sendData as $k => $value) {
|
306 |
//is failed, try again later
|
307 |
$id = $value['id'];
|
62 |
$shipData = serialize($sendData);
|
63 |
if (!empty($shipData)) {
|
64 |
$data = array('action' => 'postSchedData', 'data' => $shipData);
|
65 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $data),90);
|
66 |
foreach ($postData as $k => $value) {
|
67 |
if (!isset($result->content) || !isset($result->content->{$value['id']})) {
|
68 |
$data = array('hook_action' => '1');
|
98 |
|
99 |
if (is_array($sendData) && !empty($sendData) && isset($sendData[0])) {
|
100 |
$tempData = array('action' => 'getSchedData', 'data' => serialize($sendData));
|
101 |
+
$schedResult = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData,90));
|
102 |
if ($schedResult->result == true) {
|
103 |
foreach ($schedResult->content as $k => $v) {
|
104 |
//V2
|
226 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
227 |
}
|
228 |
$tempData = array('action' => 'updateUserSchedTimePost', 'data' => serialize($sendData));
|
229 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData,90));
|
230 |
foreach ($sendData as $k => $value) {
|
231 |
//is failed, try again later
|
232 |
$id = $value['id'];
|
253 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
254 |
}
|
255 |
$tempData = array('action' => 'updateUserSchedPost', 'data' => serialize($sendData));
|
256 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData,90));
|
257 |
foreach ($sendData as $k => $value) {
|
258 |
//is failed, try again later
|
259 |
$id = $value['id'];
|
277 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
278 |
}
|
279 |
$tempData = array('action' => 'deleteUserSchedPost', 'data' => serialize($sendData));
|
280 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData,90));
|
281 |
foreach ($sendData as $k => $value) {
|
282 |
//is failed, try again later
|
283 |
$id = $value['id'];
|
301 |
$wpdb->update('b2s_posts', $data, $where, array('%d'), array('%d'));
|
302 |
}
|
303 |
$tempData = array('action' => 'deleteUserPublishPost', 'data' => serialize($sendData));
|
304 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $tempData,90));
|
305 |
foreach ($sendData as $k => $value) {
|
306 |
//is failed, try again later
|
307 |
$id = $value['id'];
|
includes/B2S/Ship/Save.php
CHANGED
@@ -125,7 +125,7 @@ class B2S_Ship_Save {
|
|
125 |
$this->postData['action'] = 'sentToNetwork';
|
126 |
$postData = $this->postData['post'];
|
127 |
$this->postData['post'] = serialize($this->postData['post']);
|
128 |
-
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $this->postData));
|
129 |
|
130 |
foreach ($postData as $k => $v) {
|
131 |
$found = false;
|
125 |
$this->postData['action'] = 'sentToNetwork';
|
126 |
$postData = $this->postData['post'];
|
127 |
$this->postData['post'] = serialize($this->postData['post']);
|
128 |
+
$result = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $this->postData,90));
|
129 |
|
130 |
foreach ($postData as $k => $v) {
|
131 |
$found = false;
|
includes/Loader.php
CHANGED
@@ -658,16 +658,13 @@ class B2S_Loader {
|
|
658 |
}
|
659 |
|
660 |
private function checkUpdate() {
|
661 |
-
$
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
curl_setopt($ch, CURLOPT_CAINFO, B2S_PLUGIN_DIR . "/includes/cacert.pem");
|
669 |
-
curl_setopt($ch, CURLOPT_USERAGENT, "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)");
|
670 |
-
$currentVersion = explode('#', curl_exec($ch));
|
671 |
if (isset($currentVersion[0]) && (int) $currentVersion[0] > (int) B2S_PLUGIN_VERSION) {
|
672 |
define('B2S_PLUGIN_NOTICE', 'UPDATE');
|
673 |
}
|
658 |
}
|
659 |
|
660 |
private function checkUpdate() {
|
661 |
+
$args = array(
|
662 |
+
'timeout' => '15',
|
663 |
+
'redirection' => '5',
|
664 |
+
'user-agent' => "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)"
|
665 |
+
);
|
666 |
+
$result = wp_remote_retrieve_body(wp_remote_get(B2S_PLUGIN_API_ENDPOINT . 'update.txt', $args));
|
667 |
+
$currentVersion = explode('#', $result);
|
|
|
|
|
|
|
668 |
if (isset($currentVersion[0]) && (int) $currentVersion[0] > (int) B2S_PLUGIN_VERSION) {
|
669 |
define('B2S_PLUGIN_NOTICE', 'UPDATE');
|
670 |
}
|
includes/PRG/Api/Get.php
CHANGED
@@ -2,19 +2,18 @@
|
|
2 |
|
3 |
class PRG_Api_Get {
|
4 |
|
5 |
-
public static function get($url = '', $header = array("Content-Type:application/x-www-form-urlencoded")) {
|
6 |
if (empty($url)) {
|
7 |
return false;
|
8 |
}
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
return $result;
|
18 |
}
|
19 |
|
20 |
}
|
2 |
|
3 |
class PRG_Api_Get {
|
4 |
|
5 |
+
public static function get($url = '', $timeout = 30, $header = array("Content-Type:application/x-www-form-urlencoded")) {
|
6 |
if (empty($url)) {
|
7 |
return false;
|
8 |
}
|
9 |
+
|
10 |
+
$args = array(
|
11 |
+
'timeout' => $timeout,
|
12 |
+
'redirection' => '5',
|
13 |
+
'user-agent' => "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)",
|
14 |
+
'headers' => $header
|
15 |
+
);
|
16 |
+
return wp_remote_retrieve_body(wp_remote_get($url, $args));
|
|
|
17 |
}
|
18 |
|
19 |
}
|
includes/PRG/Api/Post.php
CHANGED
@@ -2,19 +2,19 @@
|
|
2 |
|
3 |
class PRG_Api_Post {
|
4 |
|
5 |
-
public static function post($url = '', $post = array()) {
|
6 |
if (empty($url) || empty($post)) {
|
7 |
return false;
|
8 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
-
$
|
11 |
-
curl_setopt($ch, CURLOPT_URL, $url);
|
12 |
-
curl_setopt($ch, CURLOPT_POST, true);
|
13 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
14 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
|
15 |
-
curl_setopt($ch, CURLOPT_USERAGENT, "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)");
|
16 |
-
$result = curl_exec($ch);
|
17 |
-
return $result;
|
18 |
}
|
19 |
|
20 |
}
|
2 |
|
3 |
class PRG_Api_Post {
|
4 |
|
5 |
+
public static function post($url = '', $post = array(), $timeout = 30) {
|
6 |
if (empty($url) || empty($post)) {
|
7 |
return false;
|
8 |
}
|
9 |
+
$args = array(
|
10 |
+
'method' => 'POST',
|
11 |
+
'body' => $post,
|
12 |
+
'timeout' => $timeout,
|
13 |
+
'redirection' => '5',
|
14 |
+
'user-agent' => "Blog2Social/" . B2S_PLUGIN_VERSION . " (Wordpress/Plugin)",
|
15 |
+
);
|
16 |
|
17 |
+
return wp_remote_retrieve_body(wp_remote_post($url, $args));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
|
20 |
}
|
includes/Tools.php
CHANGED
@@ -7,13 +7,13 @@ class B2S_Tools {
|
|
7 |
}
|
8 |
|
9 |
public static function getToken($data = array()) {
|
10 |
-
return B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $data,
|
11 |
}
|
12 |
|
13 |
public static function setUserDetails() {
|
14 |
delete_option('B2S_PLUGIN_USER_VERSION_' . B2S_PLUGIN_BLOG_USER_ID);
|
15 |
delete_option('B2S_PLUGIN_PRIVACY_POLICY_USER_ACCEPT_' . B2S_PLUGIN_BLOG_USER_ID);
|
16 |
-
$version = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, array('action' => 'getUserDetails', 'token' => B2S_PLUGIN_TOKEN, 'version' => B2S_PLUGIN_VERSION),
|
17 |
$tokenInfo['B2S_PLUGIN_USER_VERSION'] = (isset($version->version) ? $version->version : 0);
|
18 |
$tokenInfo['B2S_PLUGIN_VERSION'] = B2S_PLUGIN_VERSION;
|
19 |
if (!defined("B2S_PLUGIN_USER_VERSION")) {
|
7 |
}
|
8 |
|
9 |
public static function getToken($data = array()) {
|
10 |
+
return B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, $data, 30);
|
11 |
}
|
12 |
|
13 |
public static function setUserDetails() {
|
14 |
delete_option('B2S_PLUGIN_USER_VERSION_' . B2S_PLUGIN_BLOG_USER_ID);
|
15 |
delete_option('B2S_PLUGIN_PRIVACY_POLICY_USER_ACCEPT_' . B2S_PLUGIN_BLOG_USER_ID);
|
16 |
+
$version = json_decode(B2S_Api_Post::post(B2S_PLUGIN_API_ENDPOINT, array('action' => 'getUserDetails', 'token' => B2S_PLUGIN_TOKEN, 'version' => B2S_PLUGIN_VERSION), 30));
|
17 |
$tokenInfo['B2S_PLUGIN_USER_VERSION'] = (isset($version->version) ? $version->version : 0);
|
18 |
$tokenInfo['B2S_PLUGIN_VERSION'] = B2S_PLUGIN_VERSION;
|
19 |
if (!defined("B2S_PLUGIN_USER_VERSION")) {
|
includes/Util.php
CHANGED
@@ -128,67 +128,12 @@ class B2S_Util {
|
|
128 |
}
|
129 |
|
130 |
private static function b2sFileGetContents($url) {
|
131 |
-
$
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
138 |
-
$data = self::b2sCurlExecFollow($ch);
|
139 |
-
curl_close($ch);
|
140 |
-
return $data;
|
141 |
-
}
|
142 |
-
|
143 |
-
private static function b2sCurlExecFollow($ch, $maxredirect = 5) {
|
144 |
-
$b2sSafeMode = ini_get('safe_mode');
|
145 |
-
$b2sOpenBaseDir = ini_get('open_basedir');
|
146 |
-
if ((empty($b2sOpenBaseDir) || $b2sOpenBaseDir == " ") && (filter_var($b2sSafeMode, FILTER_VALIDATE_BOOLEAN) === false) || strtolower($b2sSafeMode) == "off") {
|
147 |
-
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
148 |
-
} else {
|
149 |
-
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
|
150 |
-
if ($maxredirect > 0) {
|
151 |
-
$original_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
|
152 |
-
$newurl = $original_url;
|
153 |
-
$rch = curl_copy_handle($ch);
|
154 |
-
curl_setopt($rch, CURLOPT_HEADER, true);
|
155 |
-
curl_setopt($rch, CURLOPT_NOBODY, true);
|
156 |
-
curl_setopt($rch, CURLOPT_FORBID_REUSE, false);
|
157 |
-
do {
|
158 |
-
curl_setopt($rch, CURLOPT_URL, $newurl);
|
159 |
-
curl_setopt($rch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0');
|
160 |
-
$header = curl_exec($rch);
|
161 |
-
if (curl_errno($rch)) {
|
162 |
-
$code = 0;
|
163 |
-
} else {
|
164 |
-
$code = curl_getinfo($rch, CURLINFO_HTTP_CODE);
|
165 |
-
if ((int) $code == 301) {
|
166 |
-
preg_match('/Location:(.*?)\n/i', $header, $matches);
|
167 |
-
$newurl = trim(array_pop($matches));
|
168 |
-
if (!preg_match("/^https?:/i", $newurl)) {
|
169 |
-
$newurl = $original_url . $newurl;
|
170 |
-
}
|
171 |
-
} else {
|
172 |
-
$code = 0;
|
173 |
-
}
|
174 |
-
}
|
175 |
-
} while ($code && --$maxredirect);
|
176 |
-
|
177 |
-
curl_close($rch);
|
178 |
-
|
179 |
-
if (!$maxredirect) {
|
180 |
-
if ($maxredirect === null) {
|
181 |
-
return false; //Too many redirects
|
182 |
-
} else {
|
183 |
-
$maxredirect = 0;
|
184 |
-
}
|
185 |
-
return false;
|
186 |
-
}
|
187 |
-
curl_setopt($ch, CURLOPT_URL, $newurl);
|
188 |
-
}
|
189 |
-
}
|
190 |
-
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0');
|
191 |
-
return curl_exec($ch);
|
192 |
}
|
193 |
|
194 |
private static function b2sGetMetaDescription($html) {
|
128 |
}
|
129 |
|
130 |
private static function b2sFileGetContents($url) {
|
131 |
+
$args = array(
|
132 |
+
'timeout' => '20',
|
133 |
+
'redirection' => '5',
|
134 |
+
'user-agent' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0"
|
135 |
+
);
|
136 |
+
return wp_remote_retrieve_body(wp_remote_get($url, $args));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
138 |
|
139 |
private static function b2sGetMetaDescription($html) {
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: auto post, auto publish, social media scheduling, social media calendar, s
|
|
4 |
Donate link: http://www.blog2social.com
|
5 |
Requires at least: 4.2.2
|
6 |
Tested up to: 5.0.2
|
7 |
-
Stable tag: 5.1.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -334,6 +334,8 @@ We use the official authentication oAUTH methods to third-party applications pro
|
|
334 |
9. Adjust the best times to schedule in the best time scheduler.
|
335 |
|
336 |
== Changelog ==
|
|
|
|
|
337 |
= 5.1.1 =
|
338 |
Usability Optimization, google plus instant sharing
|
339 |
= 5.1.0 =
|
@@ -394,6 +396,8 @@ Usabilitiy and Performance Optimization. Select link format or image format indi
|
|
394 |
Usabilitiy and Performance Optimization. NEW: Select individual images per post. Select link format or image format for your posts. Select your own time zone for scheduling posts. Emoji support.
|
395 |
|
396 |
== Upgrade Notice ==
|
|
|
|
|
397 |
= 5.1.1 =
|
398 |
Usability Optimization, google plus instant sharing
|
399 |
= 5.1.0 =
|
4 |
Donate link: http://www.blog2social.com
|
5 |
Requires at least: 4.2.2
|
6 |
Tested up to: 5.0.2
|
7 |
+
Stable tag: 5.1.2
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
334 |
9. Adjust the best times to schedule in the best time scheduler.
|
335 |
|
336 |
== Changelog ==
|
337 |
+
= 5.1.2 =
|
338 |
+
Usability Optimization
|
339 |
= 5.1.1 =
|
340 |
Usability Optimization, google plus instant sharing
|
341 |
= 5.1.0 =
|
396 |
Usabilitiy and Performance Optimization. NEW: Select individual images per post. Select link format or image format for your posts. Select your own time zone for scheduling posts. Emoji support.
|
397 |
|
398 |
== Upgrade Notice ==
|
399 |
+
= 5.1.2 =
|
400 |
+
Usability Optimization
|
401 |
= 5.1.1 =
|
402 |
Usability Optimization, google plus instant sharing
|
403 |
= 5.1.0 =
|