Server IP : 104.21.14.48 / Your IP : 18.216.86.171 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/wordpress-seo/src/user-meta/infrastructure/ |
Upload File : |
<?php namespace Yoast\WP\SEO\User_Meta\Infrastructure; /** * Repository going into the database to clean up. */ class Cleanup_Repository { /** * Deletes empty usermeta based on their meta_keys and returns the number of the deleted meta. * * @param array<string> $meta_keys The meta to be potentially deleted. * @param int $limit The number of maximum deletions. * * @return int|false The number of rows that was deleted or false if the query failed. */ public function delete_empty_usermeta_query( $meta_keys, $limit ) { global $wpdb; // phpcs:disable WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber -- Reason: we're passing an array instead. $delete_query = $wpdb->prepare( 'DELETE FROM %i WHERE meta_key IN ( ' . \implode( ', ', \array_fill( 0, \count( $meta_keys ), '%s' ) ) . ' ) AND meta_value = "" ORDER BY user_id LIMIT %d', \array_merge( [ $wpdb->usermeta ], $meta_keys, [ $limit ] ) ); // phpcs:enable // phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches. // phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way. // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared -- Reason: Is it prepared already. return $wpdb->query( $delete_query ); // phpcs:enable } }