vate function validate_array_and_quote( array $items ) { $items_array = array_filter( $items, 'is_string' ); return array_map( static function ( $item ) { return preg_quote( $item, '/' ); }, $items_array ); } /** * Check if database has at least one completed row. * * @return bool */ public function has_one_completed_row_at_least() { return $this->used_css_query->get_completed_count() > 0; } /** * Process on submit jobs. * * @return void */ public function process_on_submit_jobs() { if ( ! $this->is_enabled() ) { $this->logger::debug( 'RUCSS: Stop processing cron iteration because option is disabled.' ); return; } /** * Pending rows cont. * * @param int $count Number of rows. */ $pending_job = (int) apply_filters( 'rocket_rucss_pending_jobs_cron_rows_count', 100 ); /** * Maximum processing rows. * * @param int $max Max processing rows. */ $max_pending_rows = (int) apply_filters( 'rocket_rucss_max_pending_jobs', 3 * $pending_job, $pending_job ); $rows = $this->used_css_query->get_on_submit_jobs( $max_pending_rows ); foreach ( $rows as $row ) { $response = $this->send_api( $row->url, (bool) $row->is_mobile ); if ( false === $response || ! isset( $response['contents'], $response['contents']['jobId'], $response['contents']['queueName'] ) ) { $this->used_css_query->make_status_failed( (int) $row->id, '', '' ); continue; } /** * Lock preload URL. * * @param string $url URL to lock */ do_action( 'rocket_preload_lock_url', $row->url ); $this->used_css_query->make_status_pending( (int) $row->id, $response['contents']['jobId'], $response['contents']['queueName'], (bool) $row->is_mobile ); } } /** * Send the job to the API. * * @param string $url URL to work on. * @param bool $is_mobile Is the page for mobile. * @return array|false */ protected function send_api( string $url, bool $is_mobile ) { /** * Filters the RUCSS safelist * * @since 3.11 * * @param array $safelist Array of safelist values. */ $safelist = apply_filters( 'rocket_rucss_safelist', $this->options->get( 'remove_unused_css_safelist', [] ) ); /** * Filters the styles attributes to be skipped (blocked) by RUCSS. * * @since 3.14 * * @param array $skipped_attr Array of safelist values. */ $skipped_attr = apply_filters( 'rocket_rucss_skip_styles_with_attr', [] ); $skipped_attr = ( is_array( $skipped_attr ) ) ? $skipped_attr : []; $config = [ 'treeshake' => 1, 'rucss_safelist' => $safelist, 'skip_attr' => $skipped_attr, 'is_mobile' => $is_mobile, 'is_home' => $this->is_home( $url ), ]; $add_to_queue_response = $this->api->add_to_queue( $url, $config ); if ( 200 !== $add_to_queue_response['code'] ) { $this->logger::error( 'Error when contacting the RUCSS API.', [ 'rucss error', 'url' => $url, 'code' => $add_to_queue_response['code'], 'message' => $add_to_queue_response['message'], ] ); return false; } return $add_to_queue_response; } }
Fatal error: Uncaught TypeError: Argument 3 passed to WP_Rocket\Engine\Optimization\RUCSS\Admin\Subscriber::__construct() must be an instance of WP_Rocket\Engine\Optimization\RUCSS\Controller\UsedCSS, string given in /home/merciket/public_html/wp-content/plugins/wp-rocket/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:49 Stack trace: #0 [internal function]: WP_Rocket\Engine\Optimization\RUCSS\Admin\Subscriber->__construct(Object(WP_Rocket\Engine\Optimization\RUCSS\Admin\Settings), Object(WP_Rocket\Engine\Optimization\RUCSS\Admin\Database), 'WP_Rocket\\Engin...', Object(WP_Rocket\Engine\Optimization\RUCSS\Controller\Queue)) #1 /home/merciket/public_html/wp-content/plugins/wp-rocket/inc/Dependencies/League/Container/Definition/Definition.php(256): ReflectionClass->newInstanceArgs(Array) #2 /home/merciket/public_html/wp-content/plugins/wp-rocket/inc/Dependencies/League/Container/Definition/Definition.php(212): WP_Rocket\Dependencies\League\Container\Definition\Definition->resolveClass('WP_Rocket\\Engin...') #3 /home/merc in /home/merciket/public_html/wp-content/plugins/wp-rocket/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php on line 49