/** * WooCommerce Account Functions * * Functions for account specific things. * * @package WooCommerce\Functions * @version 2.6.0 */ use Automattic\WooCommerce\Enums\OrderStatus; defined( 'ABSPATH' ) || exit; /** * Returns the url to the lost password endpoint url. * * @param string $default_url Default lost password URL. * @return string */ function wc_lostpassword_url( $default_url = '' ) { // Avoid loading too early. if ( ! did_action( 'init' ) ) { return $default_url; } // Don't change the admin form. if ( did_action( 'login_form_login' ) ) { return $default_url; } // Don't redirect to the woocommerce endpoint on global network admin lost passwords. if ( is_multisite() && isset( $_GET['redirect_to'] ) && false !== strpos( wp_unslash( $_GET['redirect_to'] ), network_admin_url() ) ) { // WPCS: input var ok, sanitization ok, CSRF ok. return $default_url; } $wc_account_page_url = wc_get_page_permalink( 'myaccount' ); $wc_account_page_exists = wc_get_page_id( 'myaccount' ) > 0; $lost_password_endpoint = get_option( 'woocommerce_myaccount_lost_password_endpoint' ); if ( $wc_account_page_exists && ! empty( $lost_password_endpoint ) ) { return wc_get_endpoint_url( $lost_password_endpoint, '', $wc_account_page_url ); } else { return $default_url; } } add_filter( 'lostpassword_url', 'wc_lostpassword_url', 10, 1 ); /** * Get the link to the edit account details page. * * @return string */ function wc_customer_edit_account_url() { $edit_account_url = wc_get_endpoint_url( 'edit-account', '', wc_get_page_permalink( 'myaccount' ) ); return apply_filters( 'woocommerce_customer_edit_account_url', $edit_account_url ); } /** * Get the edit address slug translation. * * @param string $id Address ID. * @param bool $flip Flip the array to make it possible to retrieve the values ​​from both sides. * * @return string Address slug i18n. */ function wc_edit_address_i18n( $id, $flip = false ) { $slugs = apply_filters( 'woocommerce_edit_address_slugs', array( 'billing' => sanitize_title( _x( 'billing', 'edit-address-slug', 'woocommerce' ) ), 'shipping' => sanitize_title( _x( 'shipping', 'edit-address-slug', 'woocommerce' ) ), ) ); if ( $flip ) { $slugs = array_flip( $slugs ); } if ( ! isset( $slugs[ $id ] ) ) { return $id; } return $slugs[ $id ]; } /** * Get My Account menu items. * * @since 2.6.0 * @return array */ function wc_get_account_menu_items() { $endpoints = array( 'orders' => get_option( 'woocommerce_myaccount_orders_endpoint', 'orders' ), 'downloads' => get_option( 'woocommerce_myaccount_downloads_endpoint', 'downloads' ), 'edit-address' => get_option( 'woocommerce_myaccount_edit_address_endpoint', 'edit-address' ), 'payment-methods' => get_option( 'woocommerce_myaccount_payment_methods_endpoint', 'payment-methods' ), 'edit-account' => get_option( 'woocommerce_myaccount_edit_account_endpoint', 'edit-account' ), 'customer-logout' => get_option( 'woocommerce_logout_endpoint', 'customer-logout' ), ); $items = array( 'dashboard' => __( 'Dashboard', 'woocommerce' ), 'orders' => __( 'Orders', 'woocommerce' ), 'downloads' => __( 'Downloads', 'woocommerce' ), 'edit-address' => _n( 'Address', 'Addresses', ( 1 + (int) wc_shipping_enabled() ), 'woocommerce' ), 'payment-methods' => __( 'Payment methods', 'woocommerce' ), 'edit-account' => __( 'Account details', 'woocommerce' ), 'customer-logout' => __( 'Log out', 'woocommerce' ), ); // Remove missing endpoints. foreach ( $endpoints as $endpoint_id => $endpoint ) { if ( empty( $endpoint ) ) { unset( $items[ $endpoint_id ] ); } } // Check if payment gateways support add new payment methods. if ( isset( $items['payment-methods'] ) ) { $support_payment_methods = false; foreach ( WC()->payment_gateways->get_available_payment_gateways() as $gateway ) { if ( $gateway->supports( 'add_payment_method' ) || $gateway->supports( 'tokenization' ) ) { $support_payment_methods = true; break; } } if ( ! $support_payment_methods ) { unset( $items['payment-methods'] ); } } return apply_filters( 'woocommerce_account_menu_items', $items, $endpoints ); } /** * Find current item in account menu. * * @since 9.3.0 * @param string $endpoint Endpoint. * @return bool */ function wc_is_current_account_menu_item( $endpoint ) { global $wp; $current = isset( $wp->query_vars[ $endpoint ] ); if ( 'dashboard' === $endpoint && ( isset( $wp->query_vars['page'] ) || empty( $wp->query_vars ) ) ) { $current = true; // Dashboard is not an endpoint, so needs a custom check. } elseif ( 'orders' === $endpoint && isset( $wp->query_vars['view-order'] ) ) { $current = true; // When looking at individual order, highlight Orders list item (to signify where in the menu the user currently is). } elseif ( 'payment-methods' === $endpoint && isset( $wp->query_vars['add-payment-method'] ) ) { $current = true; } return $current; } /** * Get account menu item classes. * * @since 2.6.0 * @param string $endpoint Endpoint. * @return string */ function wc_get_account_menu_item_classes( $endpoint ) { $classes = array( 'woocommerce-MyAccount-navigation-link', 'woocommerce-MyAccount-navigation-link--' . $endpoint, ); if ( wc_is_current_account_menu_item( $endpoint ) ) { $classes[] = 'is-active'; } $classes = apply_filters( 'woocommerce_account_menu_item_classes', $classes, $endpoint ); return implode( ' ', array_map( 'sanitize_html_class', $classes ) ); } /** * Get account endpoint URL. * * @since 2.6.0 * @param string $endpoint Endpoint. * @return string */ function wc_get_account_endpoint_url( $endpoint ) { if ( 'dashboard' === $endpoint ) { return wc_get_page_permalink( 'myaccount' ); } $url = wc_get_endpoint_url( $endpoint, '', wc_get_page_permalink( 'myaccount' ) ); if ( 'customer-logout' === $endpoint ) { return wp_nonce_url( $url, 'customer-logout' ); } return $url; } /** * Get My Account > Orders columns. * * @since 2.6.0 * @return array */ function wc_get_account_orders_columns() { /** * Filters the array of My Account > Orders columns. * * @since 2.6.0 * @param array $columns Array of column labels keyed by column IDs. */ return apply_filters( 'woocommerce_account_orders_columns', array( 'order-number' => __( 'Order', 'woocommerce' ), 'order-date' => __( 'Date', 'woocommerce' ), 'order-status' => __( 'Status', 'woocommerce' ), 'order-total' => __( 'Total', 'woocommerce' ), 'order-actions' => __( 'Actions', 'woocommerce' ), ) ); } /** * Get My Account > Downloads columns. * * @since 2.6.0 * @return array */ function wc_get_account_downloads_columns() { $columns = apply_filters( 'woocommerce_account_downloads_columns', array( 'download-product' => __( 'Product', 'woocommerce' ), 'download-remaining' => __( 'Downloads remaining', 'woocommerce' ), 'download-expires' => __( 'Expires', 'woocommerce' ), 'download-file' => __( 'Download', 'woocommerce' ), 'download-actions' => ' ', ) ); if ( ! has_filter( 'woocommerce_account_download_actions' ) ) { unset( $columns['download-actions'] ); } return $columns; } /** * Get My Account > Payment methods columns. * * @since 2.6.0 * @return array */ function wc_get_account_payment_methods_columns() { return apply_filters( 'woocommerce_account_payment_methods_columns', array( 'method' => __( 'Method', 'woocommerce' ), 'expires' => __( 'Expires', 'woocommerce' ), 'actions' => ' ', ) ); } /** * Get My Account > Payment methods types * * @since 2.6.0 * @return array */ function wc_get_account_payment_methods_types() { return apply_filters( 'woocommerce_payment_methods_types', array( 'cc' => __( 'Credit card', 'woocommerce' ), 'echeck' => __( 'eCheck', 'woocommerce' ), ) ); } /** * Get account orders actions. * * @since 3.2.0 * @param int|WC_Order $order Order instance or ID. * @return array */ function wc_get_account_orders_actions( $order ) { if ( ! is_object( $order ) ) { $order_id = absint( $order ); $order = wc_get_order( $order_id ); } $actions = array( 'pay' => array( 'url' => $order->get_checkout_payment_url(), 'name' => __( 'Pay', 'woocommerce' ), /* translators: %s: order number */ 'aria-label' => sprintf( __( 'Pay for order %s', 'woocommerce' ), $order->get_order_number() ), ), 'view' => array( 'url' => $order->get_view_order_url(), 'name' => __( 'View', 'woocommerce' ), /* translators: %s: order number */ 'aria-label' => sprintf( __( 'View order %s', 'woocommerce' ), $order->get_order_number() ), ), 'cancel' => array( 'url' => $order->get_cancel_order_url( wc_get_page_permalink( 'myaccount' ) ), 'name' => __( 'Cancel', 'woocommerce' ), /* translators: %s: order number */ 'aria-label' => sprintf( __( 'Cancel order %s', 'woocommerce' ), $order->get_order_number() ), ), ); if ( ! $order->needs_payment() ) { unset( $actions['pay'] ); } /** * Filters the valid order statuses for cancel action. * * @since 3.2.0 * * @param array $statuses_for_cancel Array of valid order statuses for cancel action. * @param WC_Order $order Order instance. */ $statuses_for_cancel = apply_filters( 'woocommerce_valid_order_statuses_for_cancel', array( OrderStatus::PENDING, OrderStatus::FAILED ), $order ); if ( ! in_array( $order->get_status(), $statuses_for_cancel, true ) ) { unset( $actions['cancel'] ); } return apply_filters( 'woocommerce_my_account_my_orders_actions', $actions, $order ); } /** * Get account formatted address. * * @since 3.2.0 * @param string $address_type Type of address; 'billing' or 'shipping'. * @param int $customer_id Customer ID. * Defaults to 0. * @return string */ function wc_get_account_formatted_address( $address_type = 'billing', $customer_id = 0 ) { $getter = "get_{$address_type}"; $address = array(); if ( 0 === $customer_id ) { $customer_id = get_current_user_id(); } $customer = new WC_Customer( $customer_id ); if ( is_callable( array( $customer, $getter ) ) ) { $address = $customer->$getter(); unset( $address['email'], $address['tel'] ); } return WC()->countries->get_formatted_address( apply_filters( 'woocommerce_my_account_my_address_formatted_address', $address, $customer->get_id(), $address_type ) ); } /** * Returns an array of a user's saved payments list for output on the account tab. * * @since 2.6 * @param array $list List of payment methods passed from wc_get_customer_saved_methods_list(). * @param int $customer_id The customer to fetch payment methods for. * @return array Filtered list of customers payment methods. */ function wc_get_account_saved_payment_methods_list( $list, $customer_id ) { $payment_tokens = WC_Payment_Tokens::get_customer_tokens( $customer_id ); foreach ( $payment_tokens as $payment_token ) { $delete_url = wc_get_endpoint_url( 'delete-payment-method', $payment_token->get_id() ); $delete_url = wp_nonce_url( $delete_url, 'delete-payment-method-' . $payment_token->get_id() ); $set_default_url = wc_get_endpoint_url( 'set-default-payment-method', $payment_token->get_id() ); $set_default_url = wp_nonce_url( $set_default_url, 'set-default-payment-method-' . $payment_token->get_id() ); $type = strtolower( $payment_token->get_type() ); $list[ $type ][] = array( 'method' => array( 'gateway' => $payment_token->get_gateway_id(), ), 'expires' => esc_html__( 'N/A', 'woocommerce' ), 'is_default' => $payment_token->is_default(), 'actions' => array( 'delete' => array( 'url' => $delete_url, 'name' => esc_html__( 'Delete', 'woocommerce' ), ), ), ); $key = key( array_slice( $list[ $type ], -1, 1, true ) ); if ( ! $payment_token->is_default() ) { $list[ $type ][ $key ]['actions']['default'] = array( 'url' => $set_default_url, 'name' => esc_html__( 'Make default', 'woocommerce' ), ); } $list[ $type ][ $key ] = apply_filters( 'woocommerce_payment_methods_list_item', $list[ $type ][ $key ], $payment_token ); } return $list; } add_filter( 'woocommerce_saved_payment_methods_list', 'wc_get_account_saved_payment_methods_list', 10, 2 ); /** * Controls the output for credit cards on the my account page. * * @since 2.6 * @param array $item Individual list item from woocommerce_saved_payment_methods_list. * @param WC_Payment_Token $payment_token The payment token associated with this method entry. * @return array Filtered item. */ function wc_get_account_saved_payment_methods_list_item_cc( $item, $payment_token ) { if ( 'cc' !== strtolower( $payment_token->get_type() ) ) { return $item; } $card_type = $payment_token->get_card_type(); $item['method']['last4'] = $payment_token->get_last4(); $item['method']['brand'] = ( ! empty( $card_type ) ? ucwords( str_replace( '_', ' ', $card_type ) ) : esc_html__( 'Credit card', 'woocommerce' ) ); $item['expires'] = $payment_token->get_expiry_month() . '/' . substr( $payment_token->get_expiry_year(), -2 ); return $item; } add_filter( 'woocommerce_payment_methods_list_item', 'wc_get_account_saved_payment_methods_list_item_cc', 10, 2 ); /** * Controls the output for eChecks on the my account page. * * @since 2.6 * @param array $item Individual list item from woocommerce_saved_payment_methods_list. * @param WC_Payment_Token $payment_token The payment token associated with this method entry. * @return array Filtered item. */ function wc_get_account_saved_payment_methods_list_item_echeck( $item, $payment_token ) { if ( 'echeck' !== strtolower( $payment_token->get_type() ) ) { return $item; } $item['method']['last4'] = $payment_token->get_last4(); $item['method']['brand'] = esc_html__( 'eCheck', 'woocommerce' ); return $item; } add_filter( 'woocommerce_payment_methods_list_item', 'wc_get_account_saved_payment_methods_list_item_echeck', 10, 2 ); Какое Олимп казино вход казино в Интернете внесло пользу? – 3B OF SLk

Какое Олимп казино вход казино в Интернете внесло пользу?

В интернет -казино в интернет -авансовом бонус – это том, зачисленный для вас, если вы записываете. Это может быть как деньги или бесплатные спины. В этой статье денежные средства могут использоваться для создания ставок и начала, а затем удовлетворяя конкретные условия, фактически принимаются из -за денег.

Ниже есть изменение от человека интернет -казино.То, что они добавляют восхитительный дополнительный, который подходит для любого фунта вниз по взносу в отношении доллара (бонусы экспертов по первоначальному взносу), наличные или, возможно, рождественские рекламы.

Ноль вставлен в награду

Ни один депозитный дополнительный не может быть казино онлайн, который поощряет внедрение фактического, позволяет участникам получить онлайн -казино, не рискуя ни одной из женщин, которые имеют деньги. Обычно конкретный бонус заключается в типе свободных повторных записей, а также на установленную продолжительность бонусного дохода. В соответствии с казино, конкретная награда может также включать элементы преданности, которые фактически изменяются для действительно бонусов и других положительных аспектов. Возможно, в этой статье используется индивидуумом, потому что иногда они посвящены конкретным видам участников или, возможно, просят возможности.

Чтобы утверждать новый бонус, участники должны первоначально следовать за любыми направлениями регистрации интернет-казиноазинов. Позже они могут принять участие в женском бонусном доходе, как только дополнят наименее дорогие коды ставок и начинать Wear’michael превзойти наиболее ограничения ставок. Почти все интернет-казино онлайн абсолютно не питаются по бонусам, заслуживают того, чтобы люди попали в правило продвижения по службе, чтобы взаимодействовать с этим.Ваш код обычно состоит из сочетания переписки и начала сумм, однако любые онлайн -казино Wear’s должны иметь эти записи.

Поскольку абсолютно отсутствие платежа дополнительные бонусы-это простой способ узнать больше о казино, они делают несколько проблем. Любые бонусы регистрации, вероятно, имеют высокие требования к ставкам, но другие используют не величайшие ставки или, возможно, ограничения недостатков. Участники должны тщательно видеть условия и условия, чтобы просто выбрать, что они, как и в более ранних рекомендациях, объявляют дополнительный бонус. После того, как они исполняются, они, больше всего смогут улучшить ваши бывшие выплаты, чтобы помочь сохранить большую часть женщины, победителя.

Поощряется дополнительным

Изучение азартных игр поощряло дополнительные бонусы, обычно известные как флэш-бонусы регистрации или, возможно, бонус вниз, могут быть участниками вознаграждения, потому что они помогают сделать девушку подлинной пониженной платой от электронного казино. То, что они идут вперед и взяли на себя возможность доли уникального первоначального взноса компании или бесплатных вращений в выбранных видеоиграх. Прямо здесь дополнительные бонусы могут быть прочно эффективными, в частности, если терминология, как правило, полезна. Тем не менее, участники должны начать видеть партнерское соглашение, чтобы предотвратить разочарования.

Самые лучшие приятные дополнительные бонусы, скорее всего, выполняют экспертный подлинный поток отложений, вплоть до конкретной границы. Например, любые азартные дома предлагают сотню% однозначного депозита, а другие просто соответствуют пятьсот долларов. Они могут иметь фиксированную группу свободных вращений, чтобы дать игроку дополнительный код и начать возможности, если вы хотите выиграть.

Другие виды, связанные с интернет -казино Extra, получили бонусные сделки с возвратом денежных средств, где возмещают долю в экспертах по сокращению World Wide Webbacks с выбранным дном. Всех зарегистрированных пользователей Олимп казино вход щедро награждает призами. Прямо здесь дополнительные бонусы часто являются простым способом улучшить ваши деньги и помочь человеку преодолеть плохой поток, связанный с удачей. Тем не менее, прямо здесь бонусы часто восприимчивы к самым крошечным накоплению и начинают правила ставки.

Почти любое интернет -казино в Интернете Дополнительные бонусы, как правило, подлежат конкретному законодательству и начинающим ограничениям, имеют тенденцию к общим M & Gemstones или, возможно, в роли Mirielle & CS Ваши разговоры о функциях выгод. Ограничения обладают ограничениями HR, кодами азартных игр, округлыми ограничениями и инициируют полный выигрыш. Ниже правила может значительно повлиять на размер новых пособий по азартным играм, а также общую долю азартных игр.

Еще раз установите преимущество

Еще раз установить бонусы – отличный способ включить небольшой дополнительный доход в интернет -казино и инициировать, оставаться в выбранных вами играх. Они могут быть широко открыты, если ваш банкролл намеревается течь, и начать бонус человека к определению. Тем не менее, убедитесь, что вы помните, что в этой статье предлагаются предложения с конкретной терминологией, чтобы вы могли признать ранее, говоря это. Например, и начинайте убедиться, что коды ставок, как правило, приличные, а также вознаграждение полезно для игры, которая любит играть.

Иметь тенденцию к членам, которые могут быть лояльными к конкретному азартному учреждению весной, соответствуют критериям, касающимся бонусов по заправке. Ниже преимущества будут быть полученными вознаграждениями, полностью бесплатными вращающимися в отношении игр игровых автоматов, вниз по авансовым платежам и бесплатно. Как правило, они открываются после Pro предоставляет коллекцию какой -либо определенной банды денежных ставок или, возможно, накладного набора для процента энергии.

Некоторые из этих дополнительных бонусов также могут быть получены из-за наличных денег, поэтому у вас есть возможность снизить свое место и начать увеличить свою прибыль. Тем не менее, обратите внимание, как эти бонусы расположены для жесткого и быстрого дна и инициируют, что они не обязательно были созданы, чтобы обновлять ваше обычное наращивание.Итак, это хорошая сцена, чтобы утверждать это, когда могли. С одним из этих бонусов на пополнение – хороший запас, чтобы получить ваш казино онлайн -казино более удовлетворительным и менее напряженным.

Метод зарядки дополнительно

Запрашивание бонусов на лечение – это интересный способ продвижения бетров, чтобы вкладывать деньги с помощью интернет -казино. В этой статье бонус часто поставляется с выбранными фразами, которые, очевидно, немного проанализируется немного. Следующее включает в себя типы игр, уполномоченных, полные выигрышные кепки и инициируют наименьшее ограничение. В этой статье бонусы предназначены для того, чтобы распространять участников дольше, чтобы попробовать игры в реальные игры в азартные игры и начинаются с какой -либо удачей, улучшить свои победы.

Самым популярным измеренным путем в бонусе может быть вознаграждение. Это часть суммы денег, которую отложение гуру, вплоть до определенного полного правила. Любые онлайн -казино также предлагают бонусы, такие как бесплатные вращения или, возможно, деньги, чтобы привлечь новых игроков. Другие виды, связанные с предложением вознаграждения, являются очень важным персоналом и начинают методы приверженности. Особые дополнительные специальные бетры в отдельных льготах, например, увеличение бонусов в авансовые платежи или более быстрый период наличных денег.

Наконец, новые азартные заведения, публикующие предоплаченные кредитные карты, которые полны денег, а также привыкли к стипендиальному объяснению ставок в Интернет. Предварительные кредитные карты приходят в магазины, например, аптеку CVS. Они поставляются с исключительным количеством, которое использовалось с веб -сайта казино, чтобы быстро предоставить бесплатную учетную запись.

Translate »
error: Content is protected !!
Open chat