403Webshell
Server IP : 104.171.130.249  /  Your IP : 216.73.216.146
Web Server : nginx/1.25.5
System : Linux 0dac65491b7e 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64
User : root ( 0)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/themes/matreshka/inc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/themes/matreshka/inc/user-bonuses.php
<?php
/**
 * User bonuses and loyalty system functions
 *
 * @package Matreshka
 */

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Get user bonuses (loyalty points)
 * 
 * @param int|null $user_id User ID. If null, uses current user.
 * @return int Number of bonuses
 */
function matreshka_get_user_bonuses( $user_id = null ) {
	if ( ! $user_id ) {
		$user_id = get_current_user_id();
	}
	
	$bonuses = get_user_meta( $user_id, 'matreshka_bonuses', true );
	
	if ( empty( $bonuses ) ) {
		$bonuses = 0;
	}
	
	return intval( $bonuses );
}

/**
 * Update user bonuses
 * 
 * @param int $user_id User ID
 * @param int $bonuses New bonuses amount
 * @return bool True on success, false on failure
 */
function matreshka_update_user_bonuses( $user_id, $bonuses ) {
	return update_user_meta( $user_id, 'matreshka_bonuses', intval( $bonuses ) );
}

/**
 * Add bonuses to user
 * 
 * @param int $user_id User ID
 * @param int $amount Amount of bonuses to add
 * @return bool True on success, false on failure
 */
function matreshka_add_user_bonuses( $user_id, $amount ) {
	$current_bonuses = matreshka_get_user_bonuses( $user_id );
	$new_bonuses = $current_bonuses + intval( $amount );
	return matreshka_update_user_bonuses( $user_id, $new_bonuses );
}

/**
 * Subtract bonuses from user
 * 
 * @param int $user_id User ID
 * @param int $amount Amount of bonuses to subtract
 * @return bool True on success, false on failure
 */
function matreshka_subtract_user_bonuses( $user_id, $amount ) {
	$current_bonuses = matreshka_get_user_bonuses( $user_id );
	$new_bonuses = max( 0, $current_bonuses - intval( $amount ) );
	return matreshka_update_user_bonuses( $user_id, $new_bonuses );
}

/**
 * Initialize bonuses for new users
 * 
 * @param int $user_id User ID
 */
function matreshka_init_user_bonuses( $user_id ) {
	$bonuses = get_user_meta( $user_id, 'matreshka_bonuses', true );
	if ( empty( $bonuses ) ) {
		update_user_meta( $user_id, 'matreshka_bonuses', 0 );
	}
}
add_action( 'user_register', 'matreshka_init_user_bonuses' );

/**
 * Get user's main delivery address
 * 
 * @param int|null $user_id User ID. If null, uses current user.
 * @return string User address or default text
 */
function matreshka_get_user_address( $user_id = null ) {
	if ( ! $user_id ) {
		$user_id = get_current_user_id();
	}
	
	$address_parts = array();
	
	$street = get_user_meta( $user_id, 'billing_address_1', true );
	$city = get_user_meta( $user_id, 'billing_city', true );
	
	if ( ! empty( $street ) ) {
		$address_parts[] = $street;
	}
	
	if ( ! empty( $city ) && $city !== $street ) {
		$address_parts[] = $city;
	}
	
	if ( ! empty( $address_parts ) ) {
		return implode( ', ', $address_parts );
	}
	
	return 'Добавить адрес доставки';
}

/**
 * Convert bonuses to monetary value
 * 
 * @param int $bonuses Number of bonuses
 * @param float $rate Conversion rate (default 0.1 = 10%)
 * @return string Formatted price string
 */
function matreshka_bonuses_to_money( $bonuses, $rate = 0.1 ) {
	$value = $bonuses * $rate;
	return matreshka_format_price( $value );
}

Youez - 2016 - github.com/yon3zu
LinuXploit