Skip to content

Usage Example

Hovhannes Ghurshudyan edited this page Jul 4, 2019 · 3 revisions
if( class_exists( 'BTM_Plugin', false ) ){
	$task1 = new BTM_Task(
		'do_something1',
		array( 'arg_1' => 'Arg 1', 'arg_2' => 'Arg 2', 'arg_3' => 'Arg 3' ),
		10,
		16
	);
	$bulk_argument_to_keep_higher_priority = array();
	$bulk_argument_to_overwrite = array();

	$bulk_argument_to_keep_higher_priority[] = new BTM_Task_Bulk_Argument( array(1, 2, 3), 10 );
	$bulk_argument_to_keep_higher_priority[] = new BTM_Task_Bulk_Argument( array(1, 2), 5 );
	$bulk_argument_to_keep_higher_priority[] = new BTM_Task_Bulk_Argument( array(1, 2), 6 );
	$bulk_argument_to_keep_higher_priority[] = new BTM_Task_Bulk_Argument( array(1, 2), 4 );
	$bulk_argument_to_keep_higher_priority[] = new BTM_Task_Bulk_Argument( array(5, 6, 7), 5 );

	$bulk_argument_to_overwrite[] = new BTM_Task_Bulk_Argument( array(5, 6, 7), 9 );

	BTM_Task_Manager::get_instance()->register_task(
		$task1,
		$bulk_argument_to_keep_higher_priority,
		$bulk_argument_to_overwrite
	);
	
	/**
	 * @param BTM_Task_Run_Filter_Log $task_run_filter_log
	 * @param mixed[] $args
	 * @param BTM_Task_Bulk_Argument[] $bulk_args
	 *
	 * @return BTM_Task_Run_Filter_Log
	 */
	function do_something1( BTM_Task_Run_Filter_Log $task_run_filter_log, array $args, array $bulk_args ){
		$logs[] = 'Working on something 111111111';
		$logs[] = 'doing something 111111111';
		$logs[] = 'everything is done on something 111111111';
		// sleep( 3 );
		$task_run_filter_log->add_logs( $logs );
		$task_run_filter_log->add_log( json_encode( $args ) );

		$task_run_filter_log->set_bulk_fail( $bulk_args[0] );

		return $task_run_filter_log;
	}
	
	add_filter( BTM_Plugin_Options::get_instance()->get_task_filter_name_prefix() . 'do_something1', 'do_something1', 10, 3 );
}

Clone this wiki locally