t_order_customer_id_on_deleted_user( $user_id ) {
global $wpdb;
$wpdb->update(
$wpdb->postmeta,
array(
'meta_value' => 0,
),
array(
'meta_key' => '_customer_user',
'meta_value' => $user_id,
)
); // WPCS: slow query ok.
}
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 string $_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' ) );
$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 );
}
/**
* 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();
}
/**
* Add support for searching by display_name.
*
* @since 3.2.0
* @param array $search_columns Column names.
* @return array
*/
function wc_user_search_columns( $search_columns ) {
$search_columns[] = 'display_name';
return $search_columns;
}
add_filter( 'user_search_columns', 'wc_user_search_columns' );
/**
* 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 ) );
}
}
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 );
زد وان (Z.ONE) مانیکور ۶عددی مستطیل کوچک (Z-558) – بیومارک
خانه / تجهیزات جانبی و اکسسوری / زد وان (Z.ONE) مانیکور ۶عددی مستطیل کوچک (Z-558)
زد وان (Z.ONE) مانیکور ۶عددی مستطیل کوچک (Z-558) Z.ONE Manicure Set گارانتی اصالت و سلامت فیزیکی کالا
موجود در انبار بیومارک
ضمانت اصالت کالا
بازگشت
عملکرد فروشنده
تامین به موقع:
این معیار نمایانگر آن است که فروشنده در بازهی زمانی اعلام شده بدون هیچ تاخیری، کالا را تامین و ارسال کرده است.
تعهد ارسال:
این معیار نمایانگر آن است که فروشنده سفارشات ثبت شدهی مشتریان را بدون کنسلی (لغو سفارش) ارسال کرده است.
بدون مرجوعی:
این معیار نمایانگر درصد کالاهای مرجوع شده از سوی مشتری است که به علت تخلفات فروشنده و با دلایل قابل قبول از طرف مشتری مرجوع شده است.
265,000 تومان
تحویل اکسپرس
توضیحات
ویژگی های محصول
کیفیت عالی
بسته بندی زیبا
مناسب برای سفر
مناسب برای استفاده حرفه ای
مانیکور۵۵۸ زد وان Z.ONE با بسته بندی زیبا و کم حجم یک همراه همیشگی برای مسافرت است. این محصول می تواند کار یک مانیکور حرفه ای را انجام دهد. محصولات این ست از مواد اولیه باکیفیت ساخته شده که بسیار با دوام می باشند.
شناسه محصول: 3000543
جواب سوالهاتون رو میتونید در زیر پیدا کنید. در غیر اینصورت از ما بپرسید، ما همیشه به سوالاتتون جواب میدهیم.
شرایط کسب امتیاز از طریق ثبت نظر چیست؟
شما می توانید پس از دریافت سفارش، نظر خود را در رابطه با محصول خریداری شده در بیومارک بنویسید. پس از تایید نظر شما توسط کارشناسان بیومارک، امتیاز برای شما ثبت میشود.تا قبل از تایید نظر امتیاز شما در قسمت تاریخچه بخش امتیازات در صف نمایش داده میشود.
چگونه از کد تخفیف خود استفاده کنم؟
پس از نهایی کردن خرید خود، در مرحله پرداخت کد تخفیف را وارد نموده و دکمه ثبت را بزنید.
چرا بایستی در حساب کاربری شماره موبایل خود را ثبت کنم؟
کلیه تماس ها و همینطور اطلاع رسانی های پیامکی در بیومارک با شماره موبایل شما انجام می شود.
به اشتراک گذاری
میتوانید به وسیله روشها زیر این صفحه را با دوستان خود به اشتراک بگذارید.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.