PluginProbe
Lasso Lite – Affiliate Link Manager & Product Displays / 158
Lasso Lite – Affiliate Link Manager & Product Displays v158
158 157 155 156 154 153 152 151 150 149 148 trunk 0.9.9 104 105 106 107 108 109 110 111 112 113 114 115 All 57 releases
← All changes | classes/processes/class-process.php +28 -1 115158 View file →
@@ -312,9 +312,9 @@
312 312 $key
313 313 );
314 314 // @codingStandardsIgnoreEnd
315 315
316 - $queue = $lasso_db->get_var( $sql ); // ? We want to track SQL errors in Sentry
316 + $queue = $lasso_db->get_var( $sql ); // ? SQL errors surfaced via log_error() -> trigger_error()
317 317 $count = 0;
318 318 $unserialized_queue = maybe_unserialize( $queue );
319 319 if ( is_array( $unserialized_queue ) ) {
320 320 $count = count( $unserialized_queue );
@@ -514,8 +514,31 @@
514 514 $lasso_db->remove_all_lasso_processes();
515 515 }
516 516
517 517 /**
518 + * Log once when a configured background process class is missing.
519 + *
520 + * @param mixed $process_class Process class name from filter/map.
521 + */
522 + private static function log_missing_process_class_once( $process_class ) {
523 + $class_label = is_string( $process_class ) ? $process_class : wp_json_encode( $process_class );
524 + static $logged_this_request = array();
525 + if ( isset( $logged_this_request[ $class_label ] ) ) {
526 + return;
527 + }
528 + $logged_this_request[ $class_label ] = true;
529 +
530 + $log_key = 'lasso_lite_missing_proc_' . md5( $class_label );
531 + if ( get_option( $log_key ) ) {
532 + return;
533 + }
534 + update_option( $log_key, 1, false );
535 +
536 + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
537 + error_log( 'Lasso Lite: skipping missing background process class ' . $class_label );
538 + }
539 +
540 + /**
518 541 * Get Background Process is running
519 542 */
520 543 public function get_list_background_processing() {
521 544 $result = array(
@@ -527,8 +550,12 @@
527 550 $process_classes = Lasso_Verbiage::PROCESS_DESCRIPTION;
528 551 $process_classes = apply_filters( 'lasso_lite_all_processes', $process_classes );
529 552
530 553 foreach ( $process_classes as $process_class => $process_name ) {
554 + if ( ! is_string( $process_class ) || ! class_exists( $process_class ) ) {
555 + self::log_missing_process_class_once( $process_class );
556 + continue;
557 + }
531 558 /** @var Process $process_class_obj */ // phpcs:ignore
532 559 $process_class_obj = new $process_class();
533 560 $process_next_schedule = $process_class_obj->next_schedule();
534 561