/** * 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 ); Должностной веб-журнал Up-x Апикс казино Зарегистрирование а также вербовое интерактивный! – 3B OF SLk

Должностной веб-журнал Up-x Апикс казино Зарегистрирование а также вербовое интерактивный!

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

Скачать лото клуб казино – Простая оформление в игорный дом Up-X

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

Выходит, во Апикс игорный дом любой сможет скачать лото клуб казино вырыть забаву, которая даст для него максимум удовольствия и, вероятно, амбалистый выигрыш. Игроки взламывают их, исполняют дополнение акта а еще, когда им везет, выигрывают амбалистые необходимой суммы. В области отзывам клиентов, Up X – безопасный ресурс, специализирующийся нате мгновенных мини-забавах. Хозяева неутомимо добавляют асортимент веселий, добавляют премиальные предложения, анонсируют взаимовыгодные программы в видах клиентов.

скачать лото клуб казино

Лучник UP X игорный дом в области стайлингу не отличается от водящего ресурса. Во него дополняются акцессорные значки, кои делают его уникальным. Возьмите зеркале UP X придерживается аналогичная видеоколлекция игровых аппаратов, что вдобавок нате должностной площадке. Неношеные пользователи могут из нуля жениться на запасном домене, используя привычную схему.

Общий медиа-контент получите и распишитесь сайте UP X лицензированный – выткнутый благонадежными провайдерами с всемирной знаменитостью. Из числа подрядчиков софта заслуживает наименовать подобные бренды, а как Evoplay, Novomatic, EGT, Gamomat, Microgaming и прочие. Слоты игорный дом трудятся на генераторе беспричинных чисел, который делает последовательности символов кроме побочного вмешательства.

Варианты бонусов в казино Up X:

Проходящие игры, в каких копятся балы, располагаются на страницах турниров. Делегаты намерения Ap x применяют реферальную програмку. Зовя друзей, нужно выдавать на-гора до 10 процентов через всякого депозита реферала. Всяк жаждет знать, как вернуться со щитом в Up X изведав исправную стратегию. Бирлять имя автоконтроль, в каком итоги развиваются посредством ГСЧ.

скачать лото клуб казино

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

Провайдеры вдобавок забавы казино Ап Х

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

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

скачать лото клуб казино

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

Пополнение и вывод денег во Ап-Икс

Обращение вдобавок логин во этом случае станут сгенерированы автоматом. Мы рекомендуем не утратить эти данные а еще вмесить актуальный адрес электронной почты. Сие актуально упростит будующую авторизацию во онлайн казино.

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

скачать лото клуб казино

Танцевать в любимый игры получите и распишитесь действительные аржаны вдобавок во демонстрационная формате нужно не только нате официальном веб сайте игорный дом, но и больше гелиостат UPX. Данная авторским правам азартной площадке позволяет не утратить пропуск буква цельному функционалу лицензированного интерактивный казино в милости блокировки его официального веб-сайта. Ограничение подхода к важнейшему веб-ресурсу АпИкс надеюсь иметь исходной точкой по разным причинам, например, инженерные неполадки, законодательные нормы во определенных государствах. В таких ситуациях нате агропомощь подсматривает жизненное нате сегодня зеркало UP X.

Translate »
error: Content is protected !!
Open chat