Automattic\WooCommerce\Database\Migrations\CustomOrderTable

PostsToOrdersMigrationController::do_orders_migration_step()privateWC 1.0

Rollback the current database transaction.

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

Хуков нет.

Возвращает

true|false. True on success, false on error.

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

// private - только в коде основоного (родительского) класса
$result = $this->rollback_transaction(): bool;

Код PostsToOrdersMigrationController::do_orders_migration_step() WC 8.7.0

private function rollback_transaction(): bool {
	return $this->db_query( 'ROLLBACK' );
}

/**
 * Execute a database query and log any errors.
 *
 * @param string $query          The SQL query to execute.
 * @param bool   $supress_errors Whether to suppress errors.
 *
 * @return bool True if the query succeeded, false if there were errors.
 */
private function db_query( string $query, bool $supress_errors = false ): bool {
	$wpdb = WC()->get_global( 'wpdb' );

	try {
		if ( $supress_errors ) {
			$suppress = $wpdb->suppress_errors( true );
		}
		// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
		$wpdb->query( $query );
		if ( $supress_errors ) {
			$wpdb->suppress_errors( $suppress );
		}
	} catch ( \Exception $exception ) {
		$exception_class = get_class( $exception );
		$this->error_logger->error(
			"PostsToOrdersMigrationController: when executing $query: ($exception_class) {$exception->getMessage()}, {$exception->getTraceAsString()}",
			array(
				'source'    => self::LOGS_SOURCE_NAME,
				'exception' => $exception,
			)
		);
		return false;
	}

	$error = $wpdb->last_error;