This is an old revision of the document!


WPBakery Page Builder Version 5.3

In

js_composer/include/helpers/helpers_factory.php

line 486, <syntaxhighlight lang='php'> function vc_generate_nonce( $data ) {

return wp_create_nonce( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) );

} </syntaxhighlight>

change it to <syntaxhighlight lang='php'> function vc_generate_nonce( $data, $from_esi = false ) {

if ( ! $from_esi ) {
	if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) {
		if ( method_exists( 'LiteSpeed_Cache_API', 'v' ) && LiteSpeed_Cache_API::v( '1.2.4' ) ) {
			$params = array( 'data' => $data ) ;
			return LiteSpeed_Cache_API::esi_url( 'js_composer', 'WPBakery Page Builder', $params, 'default', true ) ;// The last parameter is to remove ESI comment wrapper
		}
	}
}
return wp_create_nonce( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) );

}

/** * @param $params * * @return string */ function hook_esi( $params ) {

$data = $params[ 'data' ] ;
echo vc_generate_nonce( $data, true ) ;
exit ;

} </syntaxhighlight>

Then, in

js_composer/js_composer.php

line 244, <syntaxhighlight lang='php'>

public function init() {

</syntaxhighlight>

Change it to <syntaxhighlight lang='php'>

public function init() {
	if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) {
		LiteSpeed_Cache_API::hook_tpl_esi( 'js_composer', 'hook_esi' ) ;
	}

</syntaxhighlight>

Now you can see WordPress nonce can be cached correctly.

  • Admin
  • Last modified: 2017/09/24 15:19
  • by Hai Zheng