bbp_admin_upgrade_user_engagements()
Upgrade user engagements for bbPress 2.6 and higher
Description Description
Return Return
(array) An array of the status code and the message
Source Source
File: includes/admin/tools/upgrade.php
function bbp_admin_upgrade_user_engagements() {
// Define variables
$bbp_db = bbp_db();
$statement = esc_html__( 'Upgrading user engagements… %s', 'bbpress' );
$result = esc_html__( 'No engagements to upgrade.', 'bbpress' );
// Delete previous engagements
$sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key = '_bbp_engagement'";
if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
return array( 1, sprintf( $statement, $result ) );
}
// Post types and statuses
$tpt = bbp_get_topic_post_type();
$rpt = bbp_get_reply_post_type();
$pps = bbp_get_public_status_id();
$cps = bbp_get_closed_status_id();
$sql = "INSERT INTO {$bbp_db->postmeta} (post_id, meta_key, meta_value) (
SELECT postmeta.meta_value, '_bbp_engagement', posts.post_author
FROM {$bbp_db->posts} AS posts
LEFT JOIN {$bbp_db->postmeta} AS postmeta
ON posts.ID = postmeta.post_id
AND postmeta.meta_key = '_bbp_topic_id'
WHERE posts.post_type IN (%s, %s)
AND posts.post_status IN (%s, %s)
GROUP BY postmeta.meta_value, posts.post_author)";
// Run the big query
$prepare = $bbp_db->prepare( $sql, $tpt, $rpt, $pps, $cps );
$engagements = $bbp_db->query( $prepare );
// Bail if no closed topics found
if ( empty( $engagements ) || is_wp_error( $engagements ) ) {
return array( 1, sprintf( $statement, $result ) );
}
// Complete results
$result = sprintf( _n( 'Complete! %d engagement upgraded.', 'Complete! %d engagements upgraded.', $engagements, 'bbpress' ), bbp_number_format( $engagements ) );
return array( 0, sprintf( $statement, $result ) );
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.6.0 | Introduced. |