Filter uncanny-toolkit-pro

uo_group_completion_setup_parameters

Filters setup parameters for group completion, allowing modification before processing user or group data.

add_filter( 'uo_group_completion_setup_parameters', $callback, 10, 4 );

Description

Allows modification of parameters for generating group completion certificates. Developers can alter user ID, group ID, group name, and other setup details before certificate generation. Use this to customize certificate content or target specific users/groups.


Usage

add_filter( 'uo_group_completion_setup_parameters', 'your_function_name', 10, 4 );

Parameters

$setup_parameters (mixed)
This parameter is an array that will be populated with various settings and data related to setting up a group completion certificate.
$group_id (mixed)
This parameter is an array that will hold various settings and values used for setting up the group completion certificate.
$user_id (mixed)
This parameter contains the ID of the group for which the completion setup is being configured.
$setup_parameters (mixed)
This parameter is used to store and modify an array of setup parameters, including the user ID and group ID, for generating group completion certificates.

Return Value

The filtered value.


Examples

<?php
/**
 * Example of how to filter the setup parameters for group completion certificates.
 * This example adds custom user meta to the setup parameters if a specific meta key exists.
 */
add_filter( 'uo_group_completion_setup_parameters', function( $setup_parameters, $group_id, $user_id, $certificate_post_id ) {

	// Check if the user has completed the group and add custom data if they have.
	// This is a hypothetical check. In a real scenario, you'd use appropriate
	// WordPress or LearnDash functions to determine group completion.
	$user_completed_group = get_user_meta( $user_id, 'group_' . $group_id . '_completed', true );

	if ( ! empty( $user_completed_group ) && $user_completed_group === 'yes' ) {
		// Add some custom user meta to the parameters for personalization.
		$custom_user_data = get_user_meta( $user_id, 'custom_certificate_message', true );
		if ( ! empty( $custom_user_data ) ) {
			$setup_parameters['custom_message'] = sanitize_text_field( $custom_user_data );
		}
	}

	// You could also modify existing parameters or add new ones based on group or user data.
	// For example, dynamically changing the 'print-certificate' value.
	if ( $certificate_post_id && current_user_can( 'edit_posts' ) ) {
		$setup_parameters['print-certificate'] = 1; // Ensure it's set to print for administrators
	}

	return $setup_parameters;

}, 10, 4 ); // 10 is the priority, 4 is the number of arguments accepted by the callback function.

?>

Placement

This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.


Source Code

src/classes/group-completion-certificate.php:523
src/classes/download-certificates-in-bulk.php:793

public static function setup_parameters( $group_id, $user_id ) {
		$meta             = get_post_meta( $group_id, '_ld_certificate', true );
		$setup_parameters = array();

		$setup_parameters['userID']            = $user_id;
		$setup_parameters['group-id']          = $group_id;
		$setup_parameters['group-name']        = html_entity_decode( get_the_title( $group_id ) );
		$setup_parameters['print-certificate'] = 0;

		if ( ! empty( $meta ) ) {
			//Setting Certificate Post ID
			$setup_parameters['certificate-post'] = $meta;
		}

		if ( empty( $setup_parameters['certificate-post'] ) ) {
			return $setup_parameters;
		}

		$setup_parameters['print-certificate'] = 1;

		return apply_filters( 'uo_group_completion_setup_parameters', $setup_parameters, $group_id, $user_id, $setup_parameters['certificate-post'] );
	}

Scroll to Top