/**
* WooCommerce Customer Functions
*
* Functions for customers.
*
* @package WooCommerce\Functions
* @version 2.2.0
*/
use Automattic\WooCommerce\Enums\OrderInternalStatus;
use Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore;
use Automattic\WooCommerce\Internal\Utilities\Users;
use Automattic\WooCommerce\Utilities\OrderUtil;
defined( 'ABSPATH' ) || exit;
/**
* Prevent any user who cannot 'edit_posts' (subscribers, customers etc) from seeing the admin bar.
*
* Note: get_option( 'woocommerce_lock_down_admin', true ) is a deprecated option here for backwards compatibility. Defaults to true.
*
* @param bool $show_admin_bar If should display admin bar.
* @return bool
*/
function wc_disable_admin_bar( $show_admin_bar ) {
/**
* Controls whether the WooCommerce admin bar should be disabled.
*
* @since 3.0.0
*
* @param bool $enabled
*/
if ( apply_filters( 'woocommerce_disable_admin_bar', true ) && ! ( current_user_can( 'edit_posts' ) || current_user_can( 'manage_woocommerce' ) ) ) {
$show_admin_bar = false;
}
return $show_admin_bar;
}
add_filter( 'show_admin_bar', 'wc_disable_admin_bar', 10, 1 ); // phpcs:ignore WordPress.VIP.AdminBarRemoval.RemovalDetected
if ( ! function_exists( 'wc_create_new_customer' ) ) {
/**
* Create a new customer.
*
* @since 9.4.0 Moved woocommerce_registration_error_email_exists filter to the shortcode checkout class.
* @since 9.4.0 Removed handling for generating username/password based on settings--this is consumed at form level. Here, if data is missing it will be generated.
*
* @param string $email Customer email.
* @param string $username Customer username.
* @param string $password Customer password.
* @param array $args List of arguments to pass to `wp_insert_user()`.
* @return int|WP_Error Returns WP_Error on failure, Int (user ID) on success.
*/
function wc_create_new_customer( $email, $username = '', $password = '', $args = array() ) {
if ( empty( $email ) || ! is_email( $email ) ) {
return new WP_Error( 'registration-error-invalid-email', __( 'Please provide a valid email address.', 'woocommerce' ) );
}
if ( email_exists( $email ) ) {
return new WP_Error(
'registration-error-email-exists',
sprintf(
// Translators: %s Email address.
esc_html__( 'An account is already registered with %s. Please log in or use a different email address.', 'woocommerce' ),
esc_html( $email )
)
);
}
if ( empty( $username ) ) {
$username = wc_create_new_customer_username( $email, $args );
}
$username = sanitize_user( $username );
if ( empty( $username ) || ! validate_username( $username ) ) {
return new WP_Error( 'registration-error-invalid-username', __( 'Please provide a valid account username.', 'woocommerce' ) );
}
if ( username_exists( $username ) ) {
return new WP_Error( 'registration-error-username-exists', __( 'An account is already registered with that username. Please choose another.', 'woocommerce' ) );
}
// Handle password creation.
$password_generated = false;
if ( empty( $password ) ) {
$password = wp_generate_password();
$password_generated = true;
}
if ( empty( $password ) ) {
return new WP_Error( 'registration-error-missing-password', __( 'Please create a password for your account.', 'woocommerce' ) );
}
// Use WP_Error to handle registration errors.
$errors = new WP_Error();
/**
* Fires before a customer account is registered.
*
* This hook fires before customer accounts are created and passes the form data (username, email) and an array
* of errors.
*
* This could be used to add extra validation logic and append errors to the array.
*
* @since 7.2.0
*
* @internal Matches filter name in WooCommerce core.
*
* @param string $username Customer username.
* @param string $user_email Customer email address.
* @param \WP_Error $errors Error object.
*/
do_action( 'woocommerce_register_post', $username, $email, $errors );
/**
* Filters registration errors before a customer account is registered.
*
* This hook filters registration errors. This can be used to manipulate the array of errors before
* they are displayed.
*
* @since 7.2.0
*
* @internal Matches filter name in WooCommerce core.
*
* @param \WP_Error $errors Error object.
* @param string $username Customer username.
* @param string $user_email Customer email address.
* @return \WP_Error
*/
$errors = apply_filters( 'woocommerce_registration_errors', $errors, $username, $email );
if ( is_wp_error( $errors ) && $errors->get_error_code() ) {
return $errors;
}
// Merged passed args with sanitized username, email, and password.
$customer_data = array_merge(
$args,
array(
'user_login' => $username,
'user_pass' => $password,
'user_email' => $email,
'role' => 'customer',
)
);
/**
* Filters customer data before a customer account is registered.
*
* This hook filters customer data. It allows user data to be changed, for example, username, password, email,
* first name, last name, and role.
*
* @since 7.2.0
*
* @param array $customer_data An array of customer (user) data.
* @return array
*/
$new_customer_data = apply_filters(
'woocommerce_new_customer_data',
wp_parse_args(
$customer_data,
array(
'first_name' => '',
'last_name' => '',
'source' => 'unknown',
)
)
);
$customer_id = wp_insert_user( $new_customer_data );
if ( is_wp_error( $customer_id ) ) {
return $customer_id;
}
// Set account flag to remind customer to update generated password.
if ( $password_generated ) {
update_user_option( $customer_id, 'default_password_nag', true, true );
}
/**
* Fires after a customer account has been registered.
*
* This hook fires after customer accounts are created and passes the customer data.
*
* @since 7.2.0
*
* @internal Matches filter name in WooCommerce core.
*
* @param integer $customer_id New customer (user) ID.
* @param array $new_customer_data Array of customer (user) data.
* @param string $password_generated The generated password for the account.
*/
do_action( 'woocommerce_created_customer', $customer_id, $new_customer_data, $password_generated );
return $customer_id;
}
}
/**
* Create a unique username for a new customer.
*
* @since 3.6.0
* @param string $email New customer email address.
* @param array $new_user_args Array of new user args, maybe including first and last names.
* @param string $suffix Append string to username to make it unique.
* @return string Generated username.
*/
function wc_create_new_customer_username( $email, $new_user_args = array(), $suffix = '' ) {
$username_parts = array();
if ( isset( $new_user_args['first_name'] ) ) {
$username_parts[] = sanitize_user( $new_user_args['first_name'], true );
}
if ( isset( $new_user_args['last_name'] ) ) {
$username_parts[] = sanitize_user( $new_user_args['last_name'], true );
}
// Remove empty parts.
$username_parts = array_filter( $username_parts );
// If there are no parts, e.g. name had unicode chars, or was not provided, fallback to email.
if ( empty( $username_parts ) ) {
$email_parts = explode( '@', $email );
$email_username = $email_parts[0];
// Exclude common prefixes.
if ( in_array(
$email_username,
array(
'sales',
'hello',
'mail',
'contact',
'info',
),
true
) ) {
// Get the domain part.
$email_username = $email_parts[1];
}
$username_parts[] = sanitize_user( $email_username, true );
}
$username = wc_strtolower( implode( '.', $username_parts ) );
if ( $suffix ) {
$username .= $suffix;
}
/**
* WordPress 4.4 - filters the list of blocked usernames.
*
* @since 3.7.0
* @param array $usernames Array of blocked usernames.
*/
$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
// Stop illegal logins and generate a new random username.
if ( in_array( strtolower( $username ), array_map( 'strtolower', $illegal_logins ), true ) ) {
$new_args = array();
/**
* Filter generated customer username.
*
* @since 3.7.0
* @param string $username Generated username.
* @param string $email New customer email address.
* @param array $new_user_args Array of new user args, maybe including first and last names.
* @param string $suffix Append string to username to make it unique.
*/
$new_args['first_name'] = apply_filters(
'woocommerce_generated_customer_username',
'woo_user_' . zeroise( wp_rand( 0, 9999 ), 4 ),
$email,
$new_user_args,
$suffix
);
return wc_create_new_customer_username( $email, $new_args, $suffix );
}
if ( username_exists( $username ) ) {
// Generate something unique to append to the username in case of a conflict with another user.
$suffix = '-' . zeroise( wp_rand( 0, 9999 ), 4 );
return wc_create_new_customer_username( $email, $new_user_args, $suffix );
}
/**
* Filter new customer username.
*
* @since 3.7.0
* @param string $username Customer username.
* @param string $email New customer email address.
* @param array $new_user_args Array of new user args, maybe including first and last names.
* @param string $suffix Append string to username to make it unique.
*/
return apply_filters( 'woocommerce_new_customer_username', $username, $email, $new_user_args, $suffix );
}
/**
* Login a customer (set auth cookie and set global user object).
*
* @param int $customer_id Customer ID.
*/
function wc_set_customer_auth_cookie( $customer_id ) {
wp_set_current_user( $customer_id );
wp_set_auth_cookie( $customer_id, true );
// Update session.
if ( is_callable( array( WC()->session, 'init_session_cookie' ) ) ) {
WC()->session->init_session_cookie();
}
}
/**
* Get past orders (by email) and update them.
*
* @param int $customer_id Customer ID.
* @return int
*/
function wc_update_new_customer_past_orders( $customer_id ) {
$linked = 0;
$complete = 0;
$customer = get_user_by( 'id', absint( $customer_id ) );
$customer_orders = wc_get_orders(
array(
'limit' => -1,
'customer' => array( array( 0, $customer->user_email ) ),
'return' => 'ids',
)
);
if ( ! empty( $customer_orders ) ) {
foreach ( $customer_orders as $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order ) {
continue;
}
$order->set_customer_id( $customer->ID );
$order->save();
if ( $order->has_downloadable_item() ) {
$data_store = WC_Data_Store::load( 'customer-download' );
$data_store->delete_by_order_id( $order->get_id() );
wc_downloadable_product_permissions( $order->get_id(), true );
}
do_action( 'woocommerce_update_new_customer_past_order', $order_id, $customer );
if ( $order->get_status() === OrderInternalStatus::COMPLETED ) {
++$complete;
}
++$linked;
}
}
if ( $complete ) {
update_user_meta( $customer_id, 'paying_customer', 1 );
Users::update_site_user_meta( $customer_id, 'wc_order_count', '' );
Users::update_site_user_meta( $customer_id, 'wc_money_spent', '' );
Users::delete_site_user_meta( $customer_id, 'wc_last_order' );
}
return $linked;
}
/**
* Order payment completed - This is a paying customer.
*
* @param int $order_id Order ID.
*/
function wc_paying_customer( $order_id ) {
$order = wc_get_order( $order_id );
$customer_id = $order->get_customer_id();
if ( $customer_id > 0 && 'shop_order_refund' !== $order->get_type() ) {
$customer = new WC_Customer( $customer_id );
if ( ! $customer->get_is_paying_customer() ) {
$customer->set_is_paying_customer( true );
$customer->save();
}
}
}
add_action( 'woocommerce_payment_complete', 'wc_paying_customer' );
add_action( 'woocommerce_order_status_completed', 'wc_paying_customer' );
/**
* Checks if a user (by email or ID or both) has bought an item.
*
* @param string $customer_email Customer email to check.
* @param int $user_id User ID to check.
* @param int $product_id Product ID to check.
* @return bool
*/
function wc_customer_bought_product( $customer_email, $user_id, $product_id ) {
global $wpdb;
$result = apply_filters( 'woocommerce_pre_customer_bought_product', null, $customer_email, $user_id, $product_id );
if ( null !== $result ) {
return $result;
}
/**
* Whether to use lookup tables - it can optimize performance, but correctness depends on the frequency of the AS job.
*
* @since 9.7.0
*
* @param bool $enabled
* @param string $customer_email Customer email to check.
* @param int $user_id User ID to check.
* @param int $product_id Product ID to check.
* @return bool
*/
$use_lookup_tables = apply_filters( 'woocommerce_customer_bought_product_use_lookup_tables', false, $customer_email, $user_id, $product_id );
if ( $use_lookup_tables ) {
// Lookup tables get refreshed along with the `woocommerce_reports` transient version (due to async processing).
// With high orders placement rate, this caching here will be short-lived (suboptimal for BFCM/Christmas and busy stores in general).
$cache_version = WC_Cache_Helper::get_transient_version( 'woocommerce_reports' );
} elseif ( '' === $customer_email && $user_id ) {
// Optimized: for specific customers version with orders count (it's a user meta from in-memory populated datasets).
// Best-case scenario for caching here, as it only depends on the customer orders placement rate.
$cache_version = wc_get_customer_order_count( $user_id );
} else {
// Fallback: create, update, and delete operations on orders clears caches and refreshes `orders` transient version.
// With high orders placement rate, this caching here will be short-lived (suboptimal for BFCM/Christmas and busy stores in general).
// For the core, no use-cases for this branch. Themes/extensions are still valid use-cases.
$cache_version = WC_Cache_Helper::get_transient_version( 'orders' );
}
$cache_group = 'orders';
$cache_key = 'wc_customer_bought_product_' . md5( $customer_email . '-' . $user_id . '-' . $use_lookup_tables );
$cache_value = wp_cache_get( $cache_key, $cache_group );
if ( isset( $cache_value['value'], $cache_value['version'] ) && $cache_value['version'] === $cache_version ) {
$result = $cache_value['value'];
} else {
$customer_data = array( $user_id );
if ( $user_id ) {
$user = get_user_by( 'id', $user_id );
if ( isset( $user->user_email ) ) {
$customer_data[] = $user->user_email;
}
}
if ( is_email( $customer_email ) ) {
$customer_data[] = $customer_email;
}
$customer_data = array_map( 'esc_sql', array_filter( array_unique( $customer_data ) ) );
$statuses = array_map( 'esc_sql', wc_get_is_paid_statuses() );
if ( count( $customer_data ) === 0 ) {
return false;
}
if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
$statuses = array_map(
function ( $status ) {
return "wc-$status";
},
$statuses
);
$order_table = OrdersTableDataStore::get_orders_table_name();
$user_id_clause = '';
if ( $user_id ) {
$user_id_clause = 'OR o.customer_id = ' . absint( $user_id );
}
if ( $use_lookup_tables ) {
// HPOS: yes, Lookup table: yes.
$sql = "
SELECT DISTINCT product_or_variation_id FROM (
SELECT CASE WHEN product_id != 0 THEN product_id ELSE variation_id END AS product_or_variation_id
FROM {$wpdb->prefix}wc_order_product_lookup lookup
INNER JOIN $order_table AS o ON lookup.order_id = o.ID
WHERE o.status IN ('" . implode( "','", $statuses ) . "')
AND ( o.billing_email IN ('" . implode( "','", $customer_data ) . "') $user_id_clause )
) AS subquery
WHERE product_or_variation_id != 0
";
} else {
// HPOS: yes, Lookup table: no.
$sql = "
SELECT DISTINCT im.meta_value FROM $order_table AS o
INNER JOIN {$wpdb->prefix}woocommerce_order_items AS i ON o.id = i.order_id
INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS im ON i.order_item_id = im.order_item_id
WHERE o.status IN ('" . implode( "','", $statuses ) . "')
AND im.meta_key IN ('_product_id', '_variation_id' )
AND im.meta_value != 0
AND ( o.billing_email IN ('" . implode( "','", $customer_data ) . "') $user_id_clause )
";
}
$result = $wpdb->get_col( $sql );
} elseif ( $use_lookup_tables ) {
// HPOS: no, Lookup table: yes.
$result = $wpdb->get_col(
"
SELECT DISTINCT product_or_variation_id FROM (
SELECT CASE WHEN lookup.product_id != 0 THEN lookup.product_id ELSE lookup.variation_id END AS product_or_variation_id
FROM {$wpdb->prefix}wc_order_product_lookup AS lookup
INNER JOIN {$wpdb->posts} AS p ON p.ID = lookup.order_id
INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id
WHERE p.post_status IN ( 'wc-" . implode( "','wc-", $statuses ) . "' )
AND pm.meta_key IN ( '_billing_email', '_customer_user' )
AND pm.meta_value IN ( '" . implode( "','", $customer_data ) . "' )
) AS subquery
WHERE product_or_variation_id != 0
"
); // WPCS: unprepared SQL ok.
} else {
// HPOS: no, Lookup table: no.
// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
$result = $wpdb->get_col(
"
SELECT DISTINCT im.meta_value FROM {$wpdb->posts} AS p
INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id
INNER JOIN {$wpdb->prefix}woocommerce_order_items AS i ON p.ID = i.order_id
INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS im ON i.order_item_id = im.order_item_id
WHERE p.post_status IN ( 'wc-" . implode( "','wc-", $statuses ) . "' ) AND p.post_type = 'shop_order'
AND pm.meta_key IN ( '_billing_email', '_customer_user' )
AND im.meta_key IN ( '_product_id', '_variation_id' )
AND im.meta_value != 0
AND pm.meta_value IN ( '" . implode( "','", $customer_data ) . "' )
"
);
// phpcs:enable WordPress.DB.PreparedSQL.NotPrepared
}
$result = array_map( 'absint', $result );
wp_cache_set(
$cache_key,
array(
'version' => $cache_version,
'value' => $result,
),
$cache_group,
MONTH_IN_SECONDS
);
}
return in_array( absint( $product_id ), $result, true );
}
/**
* Checks if the current user has a role.
*
* @param string $role The role.
* @return bool
*/
function wc_current_user_has_role( $role ) {
return wc_user_has_role( wp_get_current_user(), $role );
}
/**
* Checks if a user has a role.
*
* @param int|\WP_User $user The user.
* @param string $role The role.
* @return bool
*/
function wc_user_has_role( $user, $role ) {
if ( ! is_object( $user ) ) {
$user = get_userdata( $user );
}
if ( ! $user || ! $user->exists() ) {
return false;
}
return in_array( $role, $user->roles, true );
}
/**
* Checks if a user has a certain capability.
*
* @param array $allcaps All capabilities.
* @param array $caps Capabilities.
* @param array $args Arguments.
*
* @return array The filtered array of all capabilities.
*/
function wc_customer_has_capability( $allcaps, $caps, $args ) {
if ( isset( $caps[0] ) ) {
switch ( $caps[0] ) {
case 'view_order':
$user_id = intval( $args[1] );
$order = wc_get_order( $args[2] );
if ( $order && $user_id === $order->get_user_id() ) {
$allcaps['view_order'] = true;
}
break;
case 'pay_for_order':
$user_id = intval( $args[1] );
$order_id = isset( $args[2] ) ? $args[2] : null;
// When no order ID, we assume it's a new order
// and thus, customer can pay for it.
if ( ! $order_id ) {
$allcaps['pay_for_order'] = true;
break;
}
$order = wc_get_order( $order_id );
if ( $order && ( $user_id === $order->get_user_id() || ! $order->get_user_id() ) ) {
$allcaps['pay_for_order'] = true;
}
break;
case 'order_again':
$user_id = intval( $args[1] );
$order = wc_get_order( $args[2] );
if ( $order && $user_id === $order->get_user_id() ) {
$allcaps['order_again'] = true;
}
break;
case 'cancel_order':
$user_id = intval( $args[1] );
$order = wc_get_order( $args[2] );
if ( $order && $user_id === $order->get_user_id() ) {
$allcaps['cancel_order'] = true;
}
break;
case 'download_file':
$user_id = intval( $args[1] );
$download = $args[2];
if ( $download && $user_id === $download->get_user_id() ) {
$allcaps['download_file'] = true;
}
break;
}
}
return $allcaps;
}
add_filter( 'user_has_cap', 'wc_customer_has_capability', 10, 3 );
/**
* Safe way of allowing shop managers restricted capabilities that will remove
* access to the capabilities if WooCommerce is deactivated.
*
* @since 3.5.4
* @param bool[] $allcaps Array of key/value pairs where keys represent a capability name and boolean values
* represent whether the user has that capability.
* @param string[] $caps Required primitive capabilities for the requested capability.
* @param array $args Arguments that accompany the requested capability check.
* @param WP_User $user The user object.
* @return bool[]
*/
function wc_shop_manager_has_capability( $allcaps, $caps, $args, $user ) {
if ( wc_user_has_role( $user, 'shop_manager' ) ) {
// @see wc_modify_map_meta_cap, which limits editing to customers.
$allcaps['edit_users'] = true;
}
return $allcaps;
}
add_filter( 'user_has_cap', 'wc_shop_manager_has_capability', 10, 4 );
/**
* Modify the list of editable roles to prevent non-admin adding admin users.
*
* @param array $roles Roles.
* @return array
*/
function wc_modify_editable_roles( $roles ) {
if ( is_multisite() && is_super_admin() ) {
return $roles;
}
if ( ! wc_current_user_has_role( 'administrator' ) ) {
unset( $roles['administrator'] );
if ( wc_current_user_has_role( 'shop_manager' ) ) {
$shop_manager_editable_roles = apply_filters( 'woocommerce_shop_manager_editable_roles', array( 'customer' ) );
return array_intersect_key( $roles, array_flip( $shop_manager_editable_roles ) );
}
}
return $roles;
}
add_filter( 'editable_roles', 'wc_modify_editable_roles' );
/**
* Modify capabilities to prevent non-admin users editing admin users.
*
* $args[0] will be the user being edited in this case.
*
* @param array $caps Array of caps.
* @param string $cap Name of the cap we are checking.
* @param int $user_id ID of the user being checked against.
* @param array $args Arguments.
* @return array
*/
function wc_modify_map_meta_cap( $caps, $cap, $user_id, $args ) {
if ( is_multisite() && is_super_admin() ) {
return $caps;
}
switch ( $cap ) {
case 'edit_user':
case 'remove_user':
case 'promote_user':
case 'delete_user':
if ( ! isset( $args[0] ) || $args[0] === $user_id ) {
break;
} elseif ( ! wc_current_user_has_role( 'administrator' ) ) {
if ( wc_user_has_role( $args[0], 'administrator' ) ) {
$caps[] = 'do_not_allow';
} elseif ( wc_current_user_has_role( 'shop_manager' ) ) {
// Shop managers can only edit customer info.
$userdata = get_userdata( $args[0] );
$shop_manager_editable_roles = apply_filters( 'woocommerce_shop_manager_editable_roles', array( 'customer' ) ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
if ( property_exists( $userdata, 'roles' ) && ! empty( $userdata->roles ) && ! array_intersect( $userdata->roles, $shop_manager_editable_roles ) ) {
$caps[] = 'do_not_allow';
}
}
}
break;
}
return $caps;
}
add_filter( 'map_meta_cap', 'wc_modify_map_meta_cap', 10, 4 );
/**
* Get customer download permissions from the database.
*
* @param int $customer_id Customer/User ID.
* @return array
*/
function wc_get_customer_download_permissions( $customer_id ) {
$data_store = WC_Data_Store::load( 'customer-download' );
return apply_filters( 'woocommerce_permission_list', $data_store->get_downloads_for_customer( $customer_id ), $customer_id ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
}
/**
* Get customer available downloads.
*
* @param int $customer_id Customer/User ID.
* @return array
*/
function wc_get_customer_available_downloads( $customer_id ) {
$downloads = array();
$_product = null;
$order = null;
$file_number = 0;
// Get results from valid orders only.
$results = wc_get_customer_download_permissions( $customer_id );
if ( $results ) {
foreach ( $results as $result ) {
$order_id = intval( $result->order_id );
if ( ! $order || $order->get_id() !== $order_id ) {
// New order.
$order = wc_get_order( $order_id );
$_product = null;
}
// Make sure the order exists for this download.
if ( ! $order ) {
continue;
}
// Check if downloads are permitted.
if ( ! $order->is_download_permitted() ) {
continue;
}
$product_id = intval( $result->product_id );
if ( ! $_product || $_product->get_id() !== $product_id ) {
// New product.
$file_number = 0;
$_product = wc_get_product( $product_id );
}
// Check product exists and has the file.
if ( ! $_product || ! $_product->exists() || ! $_product->has_file( $result->download_id ) ) {
continue;
}
$download_file = $_product->get_file( $result->download_id );
// If the downloadable file has been disabled (it may be located in an untrusted location) then do not return it.
if ( ! $download_file->get_enabled() ) {
continue;
}
// Download name will be 'Product Name' for products with a single downloadable file, and 'Product Name - File X' for products with multiple files.
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
$download_name = apply_filters(
'woocommerce_downloadable_product_name',
$download_file['name'],
$_product,
$result->download_id,
$file_number
);
$downloads[] = array(
'download_url' => add_query_arg(
array(
'download_file' => $product_id,
'order' => $result->order_key,
'email' => rawurlencode( $result->user_email ),
'key' => $result->download_id,
),
home_url( '/' )
),
'download_id' => $result->download_id,
'product_id' => $_product->get_id(),
'product_name' => $_product->get_name(),
'product_url' => $_product->is_visible() ? $_product->get_permalink() : '', // Since 3.3.0.
'download_name' => $download_name,
'order_id' => $order->get_id(),
'order_key' => $order->get_order_key(),
'downloads_remaining' => $result->downloads_remaining,
'access_expires' => $result->access_expires,
'file' => array(
'name' => $download_file->get_name(),
'file' => $download_file->get_file(),
),
);
++$file_number;
}
}
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
return apply_filters( 'woocommerce_customer_available_downloads', $downloads, $customer_id );
}
/**
* Get total spent by customer.
*
* @param int $user_id User ID.
* @return string
*/
function wc_get_customer_total_spent( $user_id ) {
$customer = new WC_Customer( $user_id );
return $customer->get_total_spent();
}
/**
* Get total orders by customer.
*
* @param int $user_id User ID.
* @return int
*/
function wc_get_customer_order_count( $user_id ) {
$customer = new WC_Customer( $user_id );
return $customer->get_order_count();
}
/**
* Reset _customer_user on orders when a user is deleted.
*
* @param int $user_id User ID.
*/
function wc_reset_order_customer_id_on_deleted_user( $user_id ) {
global $wpdb;
if ( OrderUtil::custom_orders_table_usage_is_enabled() ) {
$order_table_ds = wc_get_container()->get( OrdersTableDataStore::class );
$order_table = $order_table_ds::get_orders_table_name();
$wpdb->update(
$order_table,
array(
'customer_id' => 0,
'date_updated_gmt' => current_time( 'mysql', true ),
),
array(
'customer_id' => $user_id,
),
array(
'%d',
'%s',
),
array(
'%d',
)
);
}
if ( ! OrderUtil::custom_orders_table_usage_is_enabled() || OrderUtil::is_custom_order_tables_in_sync() ) {
$wpdb->update(
$wpdb->postmeta,
array(
'meta_value' => 0, //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_value
),
array(
'meta_key' => '_customer_user', //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key
'meta_value' => $user_id, //phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_value
)
);
}
}
add_action( 'deleted_user', 'wc_reset_order_customer_id_on_deleted_user' );
/**
* Get review verification status.
*
* @param int $comment_id Comment ID.
* @return bool
*/
function wc_review_is_from_verified_owner( $comment_id ) {
$verified = get_comment_meta( $comment_id, 'verified', true );
return '' === $verified ? WC_Comments::add_comment_purchase_verification( $comment_id ) : (bool) $verified;
}
/**
* Disable author archives for customers.
*
* @since 2.5.0
*/
function wc_disable_author_archives_for_customers() {
global $author;
if ( is_author() ) {
$user = get_user_by( 'id', $author );
if ( user_can( $user, 'customer' ) && ! user_can( $user, 'edit_posts' ) ) {
wp_safe_redirect( wc_get_page_permalink( 'shop' ) );
exit;
}
}
}
add_action( 'template_redirect', 'wc_disable_author_archives_for_customers' );
/**
* Hooks into the `profile_update` hook to set the user last updated timestamp.
*
* @since 2.6.0
* @param int $user_id The user that was updated.
* @param array $old The profile fields pre-change.
*/
function wc_update_profile_last_update_time( $user_id, $old ) {
wc_set_user_last_update_time( $user_id );
}
add_action( 'profile_update', 'wc_update_profile_last_update_time', 10, 2 );
/**
* Hooks into the update user meta function to set the user last updated timestamp.
*
* @since 2.6.0
* @param int $meta_id ID of the meta object that was changed.
* @param int $user_id The user that was updated.
* @param string $meta_key Name of the meta key that was changed.
* @param mixed $_meta_value Value of the meta that was changed.
*/
function wc_meta_update_last_update_time( $meta_id, $user_id, $meta_key, $_meta_value ) {
$keys_to_track = apply_filters( 'woocommerce_user_last_update_fields', array( 'first_name', 'last_name' ) ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
$update_time = in_array( $meta_key, $keys_to_track, true ) ? true : false;
$update_time = 'billing_' === substr( $meta_key, 0, 8 ) ? true : $update_time;
$update_time = 'shipping_' === substr( $meta_key, 0, 9 ) ? true : $update_time;
if ( $update_time ) {
wc_set_user_last_update_time( $user_id );
}
}
add_action( 'update_user_meta', 'wc_meta_update_last_update_time', 10, 4 );
/**
* Sets a user's "last update" time to the current timestamp.
*
* @since 2.6.0
* @param int $user_id The user to set a timestamp for.
*/
function wc_set_user_last_update_time( $user_id ) {
update_user_meta( $user_id, 'last_update', gmdate( 'U' ) );
}
/**
* Get customer saved payment methods list.
*
* @since 2.6.0
* @param int $customer_id Customer ID.
* @return array
*/
function wc_get_customer_saved_methods_list( $customer_id ) {
return apply_filters( 'woocommerce_saved_payment_methods_list', array(), $customer_id ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
}
/**
* Get info about customer's last order.
*
* @since 2.6.0
* @param int $customer_id Customer ID.
* @return WC_Order|bool Order object if successful or false.
*/
function wc_get_customer_last_order( $customer_id ) {
$customer = new WC_Customer( $customer_id );
return $customer->get_last_order();
}
/**
* When a user is deleted in WordPress, delete corresponding WooCommerce data.
*
* @param int $user_id User ID being deleted.
*/
function wc_delete_user_data( $user_id ) {
global $wpdb;
// Clean up sessions.
$wpdb->delete(
$wpdb->prefix . 'woocommerce_sessions',
array(
'session_key' => $user_id,
)
);
// Revoke API keys.
$wpdb->delete(
$wpdb->prefix . 'woocommerce_api_keys',
array(
'user_id' => $user_id,
)
);
// Clean up payment tokens.
$payment_tokens = WC_Payment_Tokens::get_customer_tokens( $user_id );
foreach ( $payment_tokens as $payment_token ) {
$payment_token->delete();
}
}
add_action( 'delete_user', 'wc_delete_user_data' );
/**
* Store user agents. Used for tracker.
*
* @since 3.0.0
* @param string $user_login User login.
* @param int|object $user User.
*/
function wc_maybe_store_user_agent( $user_login, $user ) {
if ( 'yes' === get_option( 'woocommerce_allow_tracking', 'no' ) && user_can( $user, 'manage_woocommerce' ) ) {
$admin_user_agents = array_filter( (array) get_option( 'woocommerce_tracker_ua', array() ) );
$admin_user_agents[] = wc_get_user_agent();
update_option( 'woocommerce_tracker_ua', array_unique( $admin_user_agents ), false );
}
}
add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );
/**
* Update logic triggered on login.
*
* @since 3.4.0
* @param string $user_login User login.
* @param object $user User.
*/
function wc_user_logged_in( $user_login, $user ) {
wc_update_user_last_active( $user->ID );
update_user_meta( $user->ID, '_woocommerce_load_saved_cart_after_login', 1 );
}
add_action( 'wp_login', 'wc_user_logged_in', 10, 2 );
/**
* Update when the user was last active.
*
* @since 3.4.0
*/
function wc_current_user_is_active() {
if ( ! is_user_logged_in() ) {
return;
}
wc_update_user_last_active( get_current_user_id() );
}
add_action( 'wp', 'wc_current_user_is_active', 10 );
/**
* Set the user last active timestamp to now.
*
* @since 3.4.0
* @param int $user_id User ID to mark active.
*/
function wc_update_user_last_active( $user_id ) {
if ( ! $user_id ) {
return;
}
update_user_meta( $user_id, 'wc_last_active', (string) strtotime( gmdate( 'Y-m-d', time() ) ) );
}
/**
* Translate WC roles using the woocommerce textdomain.
*
* @since 3.7.0
* @param string $translation Translated text.
* @param string $text Text to translate.
* @param string $context Context information for the translators.
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
* @return string
*/
function wc_translate_user_roles( $translation, $text, $context, $domain ) {
// translate_user_role() only accepts a second parameter starting in WP 5.2.
if ( version_compare( get_bloginfo( 'version' ), '5.2', '<' ) ) {
return $translation;
}
if ( 'User role' === $context && 'default' === $domain && in_array( $text, array( 'Shop manager', 'Customer' ), true ) ) {
return translate_user_role( $text, 'woocommerce' );
}
return $translation;
}
add_filter( 'gettext_with_context', 'wc_translate_user_roles', 10, 4 );
Barter Up Now – Trade without Money
Loading…
Stake Casino ΡΠ°ΠΉΡ β ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ°ΡΡ Π±Π΅Π· Π»Π°Π³ΠΎΠ²
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΡΡΠΎΠ²Π½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΡΡΡ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠΌΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ
ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΡΠΎΡΠ΅ΡΡΡ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π² ΠΏΠΈΡΡΠΌΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠ°ΡΡΠ΅ΠΉ Π² ΡΠ°ΠΊΠΈΡ
Π²ΠΈΠ΄Π°Ρ
ΡΠΏΠΎΡΡΠ°, ΠΊΠ°ΠΊ Ρ
ΠΎΠΊΠΊΠ΅ΠΉ, Π°Π²ΡΠΎΠ³ΠΎΠ½ΠΊΠΈ, ΡΡΡΠ±ΠΎΠ», ΠΊΡΠΈΠΊΠ΅Ρ, Π±Π°ΡΠΊΠ΅ΡΠ±ΠΎΠ» ΠΈ ΡΠ΅Π½Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» Π΄Π»Ρ ΠΊΠΈΠ±Π΅ΡΡΠΏΠΎΡΡΠ°, Π³Π΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ³ΡΡ, ΠΊΠ°ΠΊ CS2, Dota 2, FIFA, King of Glory, Rainbow Six ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Π±Π΅Π·Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ Π±ΠΎΠ½ΡΡ Π² Stake casino Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄ΠΎΠ². ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΊΡΠΏΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ Π²Π°ΠΌ ΡΡΠΈΡΠΏΠΈΠ½Ρ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ»ΠΎΡΡ, Π΄Π΅Π½Π΅ΠΆΠ½ΡΠ΅ ΠΏΡΠΈΠ·Ρ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π±ΠΎΠ½ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΈ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠ± ΡΡΠΎΠΌ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΡΠ»ΡΠ³ Π² ΡΡΠ΅ΡΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ GCB, Π²ΡΠ΄Π°Π½Π½ΡΠΌ ΠΠΎΠΌΠΈΡΡΠΈΠ΅ΠΉ ΠΏΠΎ Π°Π·Π°ΡΡΠ½ΡΠΌ ΠΈΠ³ΡΠ°ΠΌ. ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ, Π½ΠΎ ΡΠ°ΠΉΡ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ PWA-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΌΠ΅Π½Ρ ΠΎΠ±ΠΎΠ·ΡΠ΅Π²Π°ΡΠ΅Π»Ρ ΠΏΡΠ½ΠΊΡ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ»ΡΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΌΠ°Ρ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»ΠΎΡΠ»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ°ΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅Ρ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π΅Π½Π΅Π³ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°. Π Π·Π°ΡΠ²ΠΊΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΌΠΌΡ ΠΈ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ.
- ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°ΠΉΡΠ° ΠΎΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠΈ.
- ΠΡΡΠ³Π»ΠΎΡΡΡΠΎΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Stake ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²ΡΠ΅Ρ
ΡΠ·ΡΠΊΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π° Π²Π΅Π±ΡΠ°ΠΉΡΠ΅.
- ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ, Π° Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅Π΄ΡΡΠ² β Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ ΠΊΠΎΠΌΠΈΡΡΠΈΠΉ.
- ΠΠ»Ρ Π½Π°ΡΡΠΎΡΡΠΈΡ
ΡΡΠ°Π²ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π»ΠΈΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ.
- ΠΠ»Π°Π΄Π΅Π»ΡΡΠ°ΠΌ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠ² Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ.
- ΠΠ΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ URL-Π°Π΄ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² Telegram-ΠΊΠ°Π½Π°Π»Π΅ ΠΊΠ°Π·ΠΈΠ½ΠΎ.
- Π Stake Casino Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π·Π°ΡΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ.
- Stake casino Π΄Π΅ΠΌΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ³Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π΄Π»Ρ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΠΈΠ³ΡΠ°ΠΌΠΈ Π½Π° Π΄Π΅Π½ΡΠ³ΠΈ, ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΈ Π²Π΅ΡΠ΅Π»ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΡΠΏΡΠ΅ΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ.
- ΠΡΠ»ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ.
- Π§ΡΠΎΠ±Ρ ΠΈΠ³ΡΠ°ΡΡ Π² ΠΊΠ°Π·ΠΈΠ½ΠΎ Stake Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ Π±Π΅Π· Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°, ΠΈΠ³ΡΠΎΠΊΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅.
ΠΡΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π»ΠΈΠΌΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠΈΡΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π°Π»Π°Π½Ρ ΡΠΈΠ°ΡΠ½ΡΠΌΠΈ Π΄Π΅Π½Π΅ΠΆΠ½ΡΠΌΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΡΠΏΠΈΡΡ ΡΠΈΡΡΠΎΠ²ΡΠ΅ Π°ΠΊΡΠΈΠ²Ρ Π½Π° ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
MoonPay ΠΈΠ»ΠΈ Swapped. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π° Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΏΠ»Π°ΡΠ½ΡΡ
ΡΡΠ°Π²ΠΎΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π΄Π΅Π½ΡΠ³ΠΈ Π½Π° Π±Π°Π»Π°Π½Ρ. Π£ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄Π²Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ β CuraΓ§ao Gaming Control Board ΠΈ XCM Validation. ΠΡΠ΅ ΡΠ°ΡΡΠ΅ΡΡ Π½Π° Π°Π·Π°ΡΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Π²Π΅Π΄ΡΡΡΡ Π² ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠ°Ρ
. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Ρ
ΠΎΠ΄Π΅ Π½Π° ΡΠ°ΠΉΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΡΠ°Π²ΡΠΉ Π²Π΅ΡΡ
Π½ΠΈΠΉ ΡΠ³ΠΎΠ» ΡΠΊΡΠ°Π½Π°. ΠΠ°ΠΆΠ°Π² Π½Π° Π½Π΅Π΅, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠΎΡΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°. Π¨ΠΈΡΠΎΠΊΠΈΠΉ Π²ΡΠ±ΠΎΡ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΉ, ΡΠΏΠ΅ΡΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΡ
ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΉΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠ΅Π΄ΠΈ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ²Π΅ΡΡ. Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Ρ Π²ΡΠ΅Ρ
Π°ΠΏΠΏΠ°ΡΠ°ΡΠΎΠ² Π΅ΡΡΡ 2 ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ. ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠ³ΡΠ°ΡΡ Π² Π‘ΡΠ΅ΠΉΠΊ Stake Casino Π²Ρ
ΠΎΠ΄ ΠΠ°Π·ΠΈΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π² Π΄Π΅ΠΌΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ»ΠΈ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ ΡΡΠ°Π²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΡΠΎΡΡΠΈΡ
Π΄Π΅Π½Π΅Π³. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Π² ΡΠ»ΠΎΡΡ, ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΡΠΈ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ $10. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΡΠ°Π²ΠΊΠ° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π°ΠΏΠΏΠ°ΡΠ°ΡΠ°Ρ
ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ $0,05. ΠΠΎΡΡΠΎΠΌΡ Π½ΠΎΠ²ΠΈΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ Π±Π°Π½ΠΊΡΠΎΠ»Π» ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Π° Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΡΠ°ΠΉΡΠ°ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠΉΡΠΈ Π² Stake Casino Π² ΠΏΠ°ΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ².
- Stake β ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΠΈΠ³ΡΡ Π² ΡΠ»ΠΎΡΡ ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ.
- ΠΡΠΈ Π°ΠΊΡΠΈΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π²ΡΠΈΠ³ΡΡΡΠ°.
- Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π»ΠΎΡΠ»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π΅ΡΠ΅ 9 ΡΡΠΎΠ²Π½Π΅ΠΉ.
- ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΡΡ ΡΠ΅ΠΊΡΠΈΡ Β«ΠΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½Π°Ρ ΠΈΠ³ΡΠ°Β» ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ Β«Π‘Π°ΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Β».
- ΠΡ
ΠΎΠ΄ Π² ΠΠΈΡΠ½ΡΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ Π½Π° Π·Π΅ΡΠΊΠ°Π»Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Medium Rare N.V., ΠΎΡΠΊΡΡΠ²ΡΠ°Ρ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΠ°Π·ΠΈΠ½ΠΎ Stake, ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΠΡΡΠ°ΡΠ°ΠΎ.
- ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, Π²Π½ΠΎΡΠΈΡΡ Π΄Π΅Π½ΡΠ³ΠΈ Π½Π° ΡΡΠ΅Ρ ΠΈ ΠΈΠ³ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ
.
- ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅Π³ΠΎ Π½Π΅ΡΡ, ΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΡΡΠ΄Π°.
- ΠΠ»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠ΅ΡΠ°ΡΡΠ° ΠΈΠ³ΡΠΎΠΊΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅Β».
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΏΠΎΡΠΎΠ±Π΅ Π²Ρ
ΠΎΠ΄Π°.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Ρ
ΠΎΠ΄ ΡΠ΅ΡΠ΅Π· ΠΊΡΠΈΠΏΡΠΎΠΊΠΎΡΠ΅Π»ΡΠΊΠΈ β Π΅ΡΠ»ΠΈ ΡΠ΅Π±Π΅ Π²Π°ΠΆΠ½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΊΠ°. ΠΡΠΎ ΡΠΎΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ. ΠΠ΅ΡΠΊΠ°Π»Π° ΡΠ°ΡΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΡΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π² ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»Π΅ Π‘ΡΠ΅ΠΉΠΊ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, Π½Π΅ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΠ²ΡΠΈΠ΅ Π±Π°Π»Π°Π½Ρ, ΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΠΈΠ³ΡΠΎΠΉ. ΠΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π΅ΠΏΠΎΠ·ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΠ°ΡΡΠΈΠΈ. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΈΠ· ΡΡΡΠ°Π½ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ°. ΠΡΠ»ΠΈ ΡΠ°ΠΉΡ Π½Π΅ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, Stake ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π·Π΅ΡΠΊΠ°Π»ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΡΠ½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ Π±Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ. ΠΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΠΈ Stake ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² Π·Π°ΠΊΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π»ΠΎΡΠ»ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΎΠ½ΡΡΡ, ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ, ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΠ΅ Π»ΠΈΠΌΠΈΡΡ Π½Π° ΡΡΠ°Π²ΠΊΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄.
- ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ°Π²ΠΊΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅.
- ΠΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²Ρ
ΠΎΠ΄ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΡ Π‘ΡΠ΅ΠΉΠΊ ΠΠ°Π·ΠΈΠ½ΠΎ.
- ΠΠ°Π·ΠΈΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ΅ΡΡΠ½ΠΎΡΡΡ Π²ΡΠ΅Ρ
ΠΈΠ³Ρ.
- ΠΠ½Π° Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ³ΡΠ°ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½ Π² Π‘ΡΠ΅ΠΉΠΊ ΠΠ°Π·ΠΈΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π² Π΄Π΅ΠΌΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ.
- Π‘ΡΡΠ»ΠΊΠΈ Π΅ΡΡΡ ΠΈ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² ΡΠΎΡΡΠ΅ΡΡΡ
ΠΈ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ°Ρ
.
- Π£ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ
ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
- ΠΠ±Π»Π°Π΄Π°ΡΠ΅Π»ΠΈ Π²ΡΡΠΎΠΊΠΈΡ
ΡΡΠ°ΡΡΡΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π»ΠΎΡΠ»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠΌΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠΈΡΠΏΠΈΠ½Ρ.
- Π’Π°ΠΊΠΆΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π·Π°ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ°ΡΡΠ½Π΅ΡΡΠΊΠΈΠ΅ ΡΠ΄Π΅Π»ΠΊΠΈ ΡΠΎ ΡΠΏΠΎΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ.
- Π‘Π»Π΅Π΄ΠΈΡΠ΅ Π·Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»Π΅ΡΠ° ΠΈ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΡΠ½Π΄ Π²Π΅Π΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ»Π΅Ρ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π°ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΊΠ°Π·ΠΈΠ½ΠΎ.
- ΠΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠ»ΡΠΆΠ±Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
- ΠΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΠΈΠ³ΡΡΡΠΈ Ρ ΠΊΠΎΠΌΡΠΎΡΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ².
Π ΠΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΄Π²ΡΡ
ΡΠ°ΠΊΡΠΎΡΠ½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π°Π»Π°Π½ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ°Π³ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ Ρ Π½Π°ΡΠ΅ΠΉ ΡΠ»ΡΠΆΠ±ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. Π‘ΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ
ΠΎΠΏΡΠΈΠΉ Π΅ΡΡΡ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΠΊΡΠΈΠΈΒ» ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ΅Π½Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ°Π²ΠΎΠΊ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠ°Ρ
Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΈΡΠ΅Π». Π€ΠΎΡΠΌΠ°Ρ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡΠΎΠ³ΠΎΠΌ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΡΠΏΠ»Π°Ρ, ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ΠΌ ΡΠ΅ΠΌΠ°ΡΠΈΠΊ ΠΈ Π±ΠΎΠ½ΡΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π·Π° ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌ ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. Π£ΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Medium Rare Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΠΡΡΠ°ΡΠ°ΠΎ. Π’Π°ΠΌ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π»ΠΎΠ³ΠΎΡΠΈΠΏΡ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² Π°Π·Π°ΡΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ. ΠΠ»Π°ΡΠ΅ΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠΎΡΠΌΠ»ΡΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΡΠ΅Π»Π΅ΠΊΒ». Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄ΠΎΠ² ΡΠΈΠ°ΡΠ°, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅. ΠΠΈΠΌΠΈΡΡ ΠΏΠΎ Π΄Π΅ΠΏΠΎΠ·ΠΈΡΠ°ΠΌ ΠΈ Π²ΡΠΏΠ»Π°ΡΠ°ΠΌ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ, Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΎΡΠΌΠ° Π΄ΠΎΡΡΡΠΏΠ½Π° Π²ΠΎ Π²ΡΠ΅Ρ
Π²Π΅ΡΡΠΈΡΡ
ΡΠ°ΠΉΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΡΠ΅Π΄ΡΡΠ²), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π² ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π· ΡΠ°Ρ-Π±ΠΎΡ Π² Telegram. Π’Π°ΠΊΠΆΠ΅ Π½Π° ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π°ΠΊΡΠΈΠΈ, ΡΠ΅Π·ΠΎΠ½Π½ΡΠ΅ ΠΈΠ²Π΅Π½ΡΡ, ΡΡΡΠ½ΠΈΡΡ ΠΈ ΡΠΎΠ·ΡΠ³ΡΡΡΠΈ. ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ². ΠΠ½Π° Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ³ΡΠ°ΡΡ ΠΎΠ½Π»Π°ΠΉΠ½ Π² Π‘ΡΠ΅ΠΉΠΊ ΠΠ°Π·ΠΈΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π² Π΄Π΅ΠΌΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ. ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°ΠΉΡΠ° ΠΎΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠΈ. Π’Π°ΠΊΠΎΠΉ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ Stake Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈ Π½Π΅Π½Π°Π²ΡΠ·ΡΠΈΠ²ΡΠΌ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΠΏΡΠΎΠΉΡΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡΡ Π±Π°Π»Π°Π½Ρ. ΠΡΠ΅ Π°Π·Π°ΡΡΠ½ΡΠ΅ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ, Π±ΡΠΊΠΌΠ΅ΠΊΠ΅ΡΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΎΡΠ° ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠΎΠΊΠ΅Ρ-ΡΡΠΌ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². Π‘ΡΠ΅ΠΉΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ ΠΠ. ΠΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ³ΡΠ°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΈ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ³ΡΠ°ΡΡ Π½Π° Π΄Π΅Π½ΡΠ³ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈΡΠ°, Π΄ΠΎΡΡΠΈΠ³ΡΠΈΠ΅ 18 Π»Π΅Ρ. Π ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠ°Π²ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΠΈΠ»Ρ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ, Π½Π°Ρ
ΠΎΠ΄ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠ΅Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ Π½Π΅ Ρ
ΠΎΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ³ΡΠ°ΡΡ Π² Π‘ΡΠ΅ΠΉΠΊ ΠΠ°Π·ΠΈΠ½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π² Π΄Π΅ΠΌΠΎ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π½Π° Π΄Π΅Π½ΡΠ³ΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π» Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠΊΡΠ°Π½ Π³Π°Π΄ΠΆΠ΅ΡΠ°. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°Π·Π΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π±Π΅Π·Π΄Π΅ΠΏΡ. Π ΡΠΎΡΡΠ°Π² Π²Ρ
ΠΎΠ΄ΡΡ Π΄ΠΎ 50 ΡΡΠΈΡΠΏΠΈΠ½ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΎ $20 Π² ΠΊΡΠΈΠΏΡΠΎΠ²Π°Π»ΡΡΠ΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠΌ Π½ΠΎΠ²ΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Π² ΠΊΠ°Π·ΠΈΠ½ΠΎ.
Sell
Top
Leave your comment