# automatorwp/6.0.0/integrations/gamipress/includes/functions.php

AutomatorWP – No-Code Workflow Automation, Integration &amp; Webhooks Plugin, now with AI, version 6.0.0. 102 lines.

- Page: https://pluginprobe.com/plugins/automatorwp/6.0.0/code/integrations/gamipress/includes/functions.php
- Raw: https://pluginprobe.com/plugins/automatorwp/6.0.0/raw/integrations/gamipress/includes/functions.php
- Modified: 2026-08-31T06:40:04+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/automatorwp/6.0.0/code/integrations/gamipress/includes/functions.php#L10-L20`.

```php
<?php
/**
 * Functions
 *
 * @package     AutomatorWP\Integrations\GamiPress\Functions
 * @author      AutomatorWP <contact@automatorwp.com>, Ruben Garcia <rubengcdev@gmail.com>
 * @since       1.0.0
 */
// Exit if accessed directly
if( !defined( 'ABSPATH' ) ) exit;

/**
 * Options callback for select fields assigned to points types
 *
 * @since 1.0.0
 *
 * @param stdClass $field
 *
 * @return array
 */
function automatorwp_gamipress_points_types_options_cb( $field ) {

    // Setup vars
    $value = $field->escaped_value;
    $none_value = 'any';
    $none_label = __( 'any points type', 'automatorwp' );
    $options = automatorwp_options_cb_none_option( $field, $none_value, $none_label );

    foreach( gamipress_get_points_types() as $points_type => $data ) {
        $options[$points_type] = $data['plural_name'];
    }

    return $options;

}

/**
 * Switch to main site if GamiPress is network wide active
 *
 * @since 1.0.0
 */
function automatorwp_gamipress_ajax_get_posts() {

    if( isset( $_REQUEST['post_type_cb'] ) ) {

        $post_type_cb = sanitize_text_field( $_REQUEST['post_type_cb'] );
        $gamipress_cbs = array( 'gamipress_get_points_types_slugs', 'gamipress_get_achievement_types_slugs', 'gamipress_get_rank_types_slugs' );

        // If is any of the GamiPress post types
        if( in_array( $post_type_cb, $gamipress_cbs ) ) {
            gamipress_switch_to_main_site_if_network_wide_active();
        }

    }

}
add_action( 'wp_ajax_automatorwp_get_posts', 'automatorwp_gamipress_ajax_get_posts', 1 );

/**
 * Utility function to get the post option parameter
 *
 * @since 1.0.0
 *
 * @param array $args
 *
 * @return array
 */
function automatorwp_gamipress_utilities_post_option( $args = array() ) {

    $post_options = automatorwp_utilities_post_option( $args );

    $post_options['fields']['post']['options_cb'] = 'automatorwp_gamipress_options_cb_posts';

    return $post_options;

}

/**
 * Options callback for select2 fields assigned to posts with the special condition that if is for GamiPress, requires a blog switch
 *
 * @since 1.0.0
 *
 * @param stdClass $field
 *
 * @return array
 */
function automatorwp_gamipress_options_cb_posts( $field ) {

    if( gamipress_is_network_wide_active() ) {
        gamipress_switch_to_main_site();
    }

    $options = automatorwp_options_cb_posts( $field );

    if( gamipress_is_network_wide_active() ) {
        restore_current_blog();
    }

    return $options;

}

```
