ActionScheduler_DBStoreMigrator::save_action()publicWC 1.0

Save an action with optional last attempt date.

Normally, saving an action sets its attempted date to 0000-00-00 00:00:00 because when an action is first saved, it can't have been attempted yet, but migrated completed actions will have an attempted date, so we need to save that when first saving the action.

Метод класса: ActionScheduler_DBStoreMigrator{}

Хуков нет.

Возвращает

Строку. The action ID

Использование

$ActionScheduler_DBStoreMigrator = new ActionScheduler_DBStoreMigrator();
$ActionScheduler_DBStoreMigrator->save_action( $action, $scheduled_date, $last_attempt_date );
$action(ActionScheduler_Action) (обязательный)
-
$scheduled_date(\DateTime)
Optional date of the first instance to store.
По умолчанию: null
$last_attempt_date(\DateTime)
Optional date the action was last attempted.
По умолчанию: null

Код ActionScheduler_DBStoreMigrator::save_action() WC 8.7.0

public function save_action( ActionScheduler_Action $action, \DateTime $scheduled_date = null, \DateTime $last_attempt_date = null ){
	try {
		/** @var \wpdb $wpdb */
		global $wpdb;

		$action_id = parent::save_action( $action, $scheduled_date );

		if ( null !== $last_attempt_date ) {
			$data = [
				'last_attempt_gmt'   => $this->get_scheduled_date_string( $action, $last_attempt_date ),
				'last_attempt_local' => $this->get_scheduled_date_string_local( $action, $last_attempt_date ),
			];

			$wpdb->update( $wpdb->actionscheduler_actions, $data, array( 'action_id' => $action_id ), array( '%s', '%s' ), array( '%d' ) );
		}

		return $action_id;
	} catch ( \Exception $e ) {
		throw new \RuntimeException( sprintf( __( 'Error saving action: %s', 'woocommerce' ), $e->getMessage() ), 0 );
	}
}