HEX
Server: Apache
System: Linux web15f74.uni5.net 5.4.282-1.el8.elrepo.x86_64 #1 SMP Mon Aug 19 18:33:22 EDT 2024 x86_64
User: lucendi (859622)
PHP: 7.4.33
Disabled: apache_child_terminate,c99_buff_prepare,c99_sess_put,dl,exec,leak,link,myshellexec,openlog,passthru,pclose,pcntl_exec,php_check_syntax,php_strip_whitespace,popen,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,symlink,system,socket_listen,socket_create_listen,putenv
Upload Files
File: /home/lucendi/www/wp-content/plugins/official-facebook-pixel/core/class-facebookpluginutils.php
<?php
/**
 * Facebook Pixel Plugin FacebookPluginUtils class.
 *
 * This file contains the main logic for FacebookPluginUtils.
 *
 * @package FacebookPixelPlugin
 */

/**
 * Define FacebookPluginUtils class.
 *
 * @return void
 */

/*
* Copyright (C) 2017-present, Meta, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*/

namespace FacebookPixelPlugin\Core;

defined( 'ABSPATH' ) || die( 'Direct access not allowed' );

/**
 * Helper functions
 */
class FacebookPluginUtils {
    /**
     * Returns true if id is a positive non-zero integer
     *
     * @access public
     * @param string $pixel_id The id to check.
     * @return bool
     */
    public static function is_positive_integer( $pixel_id ) {
        return isset( $pixel_id )
        && ctype_digit( $pixel_id ) && '0' !== $pixel_id;
    }

    /**
     * Gets the information of the currently logged in user.
     *
     * @access public
     * @return array An associative array with the following keys:
     *               'email': The user's email address.
     *               'first_name': The user's first name.
     *               'last_name': The user's last name.
     *               'id': The user's ID.
     */
    public static function get_logged_in_user_info() {
        $current_user = wp_get_current_user();
        if ( empty( $current_user ) ) {
            return array();
        }

        return array(
            'email'      => $current_user->user_email,
            'first_name' => $current_user->user_firstname,
            'last_name'  => $current_user->user_lastname,
            'id'         => $current_user->ID,
        );
    }

    /**
     * Generates a random GUID.
     *
     * @return string The generated GUID.
     */
    public static function new_guid() {
        if ( function_exists( 'com_create_guid' ) === true ) {
            return trim( com_create_guid(), '{}' );
        }

        return sprintf(
            '%04X%04X-%04X-%04X-%04X-%04X%04X%04X',
            wp_rand( 0, 65535 ),
            wp_rand( 0, 65535 ),
            wp_rand( 0, 65535 ),
            wp_rand( 16384, 20479 ),
            wp_rand( 32768, 49151 ),
            wp_rand( 0, 65535 ),
            wp_rand( 0, 65535 ),
            wp_rand( 0, 65535 )
        );
    }

    /**
     * All standard WordPress user roles are considered internal
     * unless they have the Subscriber role.
     * WooCommerce uses the 'read' capability for its customer role.
     * Also check for the 'upload_files' capability to account for the
     * shop_worker and shop_vendor roles in Easy Digital Downloads.
     * https://wordpress.org/support/article/roles-and-capabilities
     *
     * @return bool
     */
    public static function is_internal_user() {
        return current_user_can( 'edit_posts' )
        || current_user_can( 'upload_files' );
    }

    /**
     * Checks if a string ends with a specified substring.
     *
     * @param string $haystack The string to search in.
     * @param string $needle The substring to search for at the
     * end of $haystack.
     * @return bool True if $haystack ends with $needle, false otherwise.
     */
    public static function ends_with( $haystack, $needle ) {
        $length = strlen( $needle );
        if ( ! $length ) {
            return false;
        }
        return substr( $haystack, -$length ) === $needle;
    }

    /**
     * Checks if a string contains a specified substring.
     *
     * @param string $haystack The string to search in.
     * @param string $needle The substring to search for within $haystack.
     * @return bool True if $haystack contains $needle, false otherwise.
     */
    public static function string_contains( $haystack, $needle ) {
        return (bool) strstr( $haystack, $needle );
    }
}