PHP code example of deliciousbrains / wp-background-processing
1. Go to this page and download the library: Download deliciousbrains/wp-background-processing library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
deliciousbrains / wp-background-processing example snippets
class WP_Example_Request extends WP_Async_Request {
/**
* @var string
*/
protected $prefix = 'my_plugin';
/**
* @var string
*/
protected $action = 'example_request';
/**
* Handle a dispatched request.
*
* Override this method to perform any actions
$this->example_request = new WP_Example_Request();
$this->example_request->data( array( 'value1' => $value1, 'value2' => $value2 ) );
$this->example_request->dispatch();
$this->example_request->data( array( 'data' => $data ) )->dispatch();
class WP_Example_Process extends WP_Background_Process {
/**
* @var string
*/
protected $prefix = 'my_plugin';
/**
* @var string
*/
protected $action = 'example_process';
/**
* Perform task with queued item.
*
* Override this method to perform any actions ons to perform.
return false;
}
/**
* Complete processing.
*
* Override if applicable, but ensure that the below actions are
* performed, or, call parent::complete().
*/
protected function complete() {
parent::complete();
// Show notice to user or perform some other arbitrary task...
}
}
$this->example_process = new WP_Example_Process();
foreach ( $items as $item ) {
$this->example_process->push_to_queue( $item );
}
$this->example_process->save()->dispatch();
if ( $this->example_process->is_queued() ) {
// Do something because background process has queued items, e.g. add notice in admin UI.
}
if ( $this->example_process->is_processing() ) {
// Do something because background process is running, e.g. add notice in admin UI.
}
$this->example_process->pause();
if ( $this->example_process->is_paused() ) {
// Do something because background process is paused, e.g. add notice in admin UI.
}
add_action( 'my_plugin_example_process_paused', function() {
// Do something because background process is paused, e.g. add notice in admin UI.
});
$this->example_process->resume();
add_action( 'my_plugin_example_process_resumed', function() {
// Do something because background process is resumed, e.g. add notice in admin UI.
});
$this->example_process->cancel();
if ( $this->example_process->is_cancelled() ) {
// Do something because background process is cancelled, e.g. add notice in admin UI.
}
add_action( 'my_plugin_example_process_cancelled', function() {
// Do something because background process is paused, e.g. add notice in admin UI.
});
if ( $this->example_process->is_active() ) {
// Do something because background process is active, e.g. add notice in admin UI.
}
function wpbp_http_request_args( $r, $url ) {
$r['headers']['Authorization'] = 'Basic ' . base64_encode( USERNAME . ':' . PASSWORD );
return $r;
}
add_filter( 'http_request_args', 'wpbp_http_request_args', 10, 2);
php
$allowed_batch_data_classes = array( MyCustomItem::class, MyItemHelper::class );
$this->example_process = new WP_Example_Process( $allowed_batch_data_classes );
php
$this->example_process = new WP_Example_Process( false );