wc_delete_expired_transients()
Delete expired transients.
Deletes all expired transients. The multi-table delete syntax is used. to delete the transient record from table a, and the corresponding. transient_timeout record from table b.
Based on code inside core's upgrade_network() function.
Хуков нет.
Возвращает
int
. Number of transients that were cleared.
Использование
wc_delete_expired_transients();
Список изменений
С версии 3.2.0 | Введена. |
Код wc_delete_expired_transients() wc delete expired transients WC 7.7.0
function wc_delete_expired_transients() { global $wpdb; // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < %d"; $rows = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_transient_' ) . '%', $wpdb->esc_like( '_transient_timeout_' ) . '%', time() ) ); $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < %d"; $rows2 = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like( '_site_transient_timeout_' ) . '%', time() ) ); // phpcs:enable WordPress.DB.PreparedSQL.NotPrepared return absint( $rows + $rows2 ); }