| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/site/20241224/spunner/wp-content/plugins/wp-statistics/src/Async/ |
Upload File : |
<?php
namespace WP_Statistics\Async;
use WP_STATISTICS\Option;
use WP_Statistics\Service\Admin\NoticeHandler\Notice;
use WP_Statistics\Service\Admin\Posts\WordCountService;
use WP_STATISTICS\WP_Background_Process;
class CalculatePostWordsCount extends WP_Background_Process
{
/**
* @var string
*/
protected $prefix = 'wp_statistics';
/**
* @var string
*/
protected $action = 'calculate_post_words_count';
/**
* Perform task with queued item.
*
* Override this method to perform any actions required on each
* queue item. Return the modified item for further processing
* in the next pass through. Or, return false to remove the
* item from the queue.
*
* @param mixed $item Queue item to iterate over.
*
* @return mixed
*/
protected function task($item)
{
$posts = $item['posts'];
foreach ($posts as $postId) {
$post = get_post($postId);
$wordCountClass = new WordCountService();
$wordCountClass->handleSavePost($postId, $post);
}
return false;
}
/**
* Complete processing.
*
* Override if applicable, but ensure that the below actions are
* performed, or, call parent::complete().
*/
protected function complete()
{
parent::complete();
// Delete option
Option::deleteOptionGroup('word_count_process_started', 'jobs');
// Show notice to user
Notice::addFlashNotice(__('Word count processed successfully.', 'wp-statistics'));
}
}