0 ) { return; } $level = \pmpro_getLevel( $save_id ); $variables = array( 'MembershipID' => (int) $save_id, 'LevelName' => \esc_html( $level->name ), 'MembershipCostText' => \esc_html( \wp_strip_all_tags( pmpro_getLevelCost( $level, false, true ) ) ), 'ExpirationText' => ! empty( $level->expiration_number ) ? $level->expiration_number . ' ' . \pmpro_translate_billing_period( $level->expiration_period, $level->expiration_number ) : \esc_html__( 'Never', 'wp-security-audit-log' ), 'ViewLink' => \esc_url( \admin_url( 'admin.php?page=pmpro-membershiplevels&edit=' . $save_id ) ), ); Alert_Manager::trigger_event( 9501, $variables ); } /** * Trigger event when a membership level is deleted. * * @param int $level_id The membership level ID that was deleted. * * @return void * * @since 5.5.2 */ public static function pmp_deleted_membership_level_event( $level_id ) { $level = \pmpro_getLevel( $level_id ); $variables = array( 'MembershipID' => ! empty( $level_id ) ? (int) $level_id : \esc_html__( 'Not provided', 'wp-security-audit-log' ), 'LevelName' => ! empty( $level->name ) ? \esc_html( $level->name ) : \esc_html__( 'Not provided', 'wp-security-audit-log' ), ); Alert_Manager::trigger_event( 9502, $variables ); } /** * Member received a membership level. * * @param int $level_id - The membership level ID from Paid Memberships Pro. * @param int $user_id - The WordPress user ID. * * @since 5.5.2 */ public static function pmp_membership_assigned_to_user( $level_id, $user_id ) { // If this is zero this is a cancellation, not an assignment, so in this case we return early. if ( 0 === (int) $level_id ) { return; } $level = \pmpro_getLevel( $level_id ); $user = \get_user_by( 'ID', $user_id ); $variables = array( 'ID' => ! empty( $cancel_level_id ) ? (int) $cancel_level_id : 0, 'LevelName' => \esc_html( $level->name ), 'LevelId' => (int) $level->id, 'UserID' => (int) $user_id, 'UserName' => \esc_html( $user->user_login ), 'Email' => \esc_html( $user->user_email ), 'FirstName' => ! empty( \get_user_meta( $user_id, 'first_name', true ) ) ? \esc_html( \get_user_meta( $user_id, 'first_name', true ) ) : \esc_html__( 'Not provided', 'wp-security-audit-log' ), 'LastName' => ! empty( \get_user_meta( $user_id, 'last_name', true ) ) ? \esc_html( \get_user_meta( $user_id, 'last_name', true ) ) : \esc_html__( 'Not provided', 'wp-security-audit-log' ), 'Role' => \esc_html( implode( ', ', $user->roles ) ), 'ViewMember' => \esc_url( \admin_url( '?page=pmpro-member&user_id=' . $user_id ) ), ); Alert_Manager::trigger_event( 9504, $variables ); } /** * Trigger event when a membership level is removed/canceled from a user. * * @param int $save_id - Save ID is from $_REQUEST and helps to determine if this is a removal or an assignment. * @param int $user_id - The affected WordPress user ID. * @param int $cancel_level_id - The level ID of the membership that was removed from this user. * * @since 5.5.2 */ public static function pmp_membership_removed_from_user( $save_id, $user_id, $cancel_level_id ) { // Save id is === 0 only on cancellations, so return early if this is not equal to 0. if ( 0 !== $save_id ) { return; } $level = \pmpro_getLevel( $cancel_level_id ); $user = \get_user_by( 'ID', $user_id ); $variables = array( 'LevelName' => \esc_html( $level->name ), 'LevelID' => (int) $cancel_level_id, 'UserID' => (int) $user_id, 'UserName' => \esc_html( $user->user_login ), 'Email' => \esc_html( $user->user_email ), 'FirstName' => ! empty( \get_user_meta( $user_id, 'first_name', true ) ) ? \esc_html( \get_user_meta( $user_id, 'first_name', true ) ) : \esc_html__( 'Not provided', 'wp-security-audit-log' ), 'LastName' => ! empty( \get_user_meta( $user_id, 'last_name', true ) ) ? \esc_html( \get_user_meta( $user_id, 'last_name', true ) ) : \esc_html__( 'Not provided', 'wp-security-audit-log' ), 'Role' => \esc_html( implode( ', ', $user->roles ) ), 'ViewMember' => \esc_url( \admin_url( '?page=pmpro-member&user_id=' . $user_id ) ), ); Alert_Manager::trigger_event( 9505, $variables ); } } }