' . __( 'Improve our store offerings', 'dokan-lite' ) . '' . '
' . __( 'If you create an account, we will store your name, address, email and phone number, which will be used to populate the checkout for future orders.', 'dokan-lite' ) . '
' . '' . __( 'We generally store information about you for as long as we need the information for the purposes for which we collect and use it, and we are not legally required to continue to keep it. For example, we will store order information for XXX years for tax and accounting purposes. This includes your name, email address and billing and shipping addresses.', 'dokan-lite' ) . '
' . '' . __( 'We will also store comments or reviews, if you choose to leave them.', 'dokan-lite' ) . '
' . '' . __( 'Members of our team have access to the information you provide us. For example, both Administrators and Shop Managers can access:', 'dokan-lite' ) . '
' . '' . __( 'Our team members have access to this information to help fulfill orders, process refunds and support you.', 'dokan-lite' ) . '
' . '' . __( 'In this section you should list who you’re sharing data with, and for what purpose. This could include, but may not be limited to, analytics, marketing, payment gateways, shipping providers, and third party embeds.', 'dokan-lite' ) . '
' . '' . __( 'We share information with third parties who help us provide our orders and store services to you; for example --', 'dokan-lite' ) . '
' . '' . __( 'In this subsection you should list which third party payment processors you’re using to take payments on your store since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'dokan-lite' ) . '
' . '' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'dokan-lite' ) . '
' . '' . __( 'Please see the PayPal Privacy Policy for more details.', 'dokan-lite' ) . '
' . '' . __( 'Dokan has premium modules that perform specific and special purpose tasks. Each of the modules collect additional information. Also third party extensions and integrations collect data that is applicable to the each of their individual privacy policy.', 'dokan-lite' ) . '
' . ''; return apply_filters( 'dokan_privacy_policy_content', $content ); } /** * Handle some custom types of data and anonymize them. * * @param string $anonymous anonymized string * @param string $type type of data * @param string $data the data being anonymized * * @return string anonymized string */ public function anonymize_custom_data_types( $anonymous, $type, $data ) { switch ( $type ) { case 'address_state': case 'address_country': $anonymous = ''; // Empty string - we don't want to store anything after removal. break; case 'phone': $anonymous = preg_replace( '/\d/u', '0', $data ); break; case 'numeric_id': $anonymous = 0; break; } return $anonymous; } /** * Export vendor personal data * * @since 2.8.2 * * @return void */ public function vendor_data_exporter( $email_address, $page ) { $user = get_user_by( 'email', $email_address ); // Check if user has an ID in the DB to load stored personal data. $data_to_export = []; if ( ! user_can( $user->ID, 'dokandar' ) ) { return [ 'data' => $data_to_export, 'done' => true, ]; } if ( $user instanceof WP_User ) { $data_to_export[] = [ 'group_id' => 'dokan_vendor', 'group_label' => __( 'Vendor Data', 'dokan-lite' ), 'group_description' => __( 'Dokan vendor personal data.', 'dokan-lite' ), 'item_id' => 'user', 'data' => $this->get_vendor_personal_data( $user ), ]; } return [ 'data' => $data_to_export, 'done' => true, ]; } /** * Get vendor pers * * @since 2.8.2 * * @return void */ public function get_vendor_personal_data( $user ) { $personal_data = []; $vendor = dokan()->vendor->get( $user->ID ); if ( ! $vendor ) { return []; } $props_to_export = apply_filters( 'dokan_privacy_export_vendor_personal_data_props', [ 'store_name' => __( 'Store Name', 'dokan-lite' ), 'social' => __( 'Social', 'dokan-lite' ), 'phone' => __( 'Phone', 'dokan-lite' ), 'address' => __( 'Address', 'dokan-lite' ), 'location' => __( 'GEO Locations', 'dokan-lite' ), 'banner' => __( 'Banner Url', 'dokan-lite' ), 'gravatar' => __( 'Gravatar Url', 'dokan-lite' ), ], $vendor ); $shop_data = $vendor->get_shop_info(); foreach ( $props_to_export as $prop => $description ) { $value = ''; if ( isset( $shop_data[ $prop ] ) && ! is_array( $shop_data[ $prop ] ) ) { $value = $shop_data[ $prop ]; } if ( 'social' === $prop ) { $social_data = []; $social_field = [ 'fb' => __( 'Facebook', 'dokan-lite' ), 'twitter' => __( 'Twitter', 'dokan-lite' ), 'pinterest' => __( 'Pinterest', 'dokan-lite' ), 'linkedin' => __( 'Linkedin', 'dokan-lite' ), 'youtube' => __( 'Youtube', 'dokan-lite' ), 'instagram' => __( 'Instagram', 'dokan-lite' ), 'flickr' => __( 'Flickr', 'dokan-lite' ), ]; foreach ( $social_field as $social_key => $social_data_title ) { if ( ! empty( $shop_data['social'][ $social_key ] ) ) { $social_data[] = sprintf( '%1$s: %2$s', $social_data_title, $shop_data['social'][ $social_key ] ); } } $value = implode( ', ', $social_data ); } if ( 'address' === $prop ) { $address_data = []; $address_field = [ 'street_1' => __( 'Address 1', 'dokan-lite' ), 'street_2' => __( 'Address 2', 'dokan-lite' ), 'city' => __( 'City', 'dokan-lite' ), 'zip' => __( 'Postal Code', 'dokan-lite' ), 'country' => __( 'Country', 'dokan-lite' ), 'state' => __( 'State', 'dokan-lite' ), ]; foreach ( $address_field as $address_key => $address_data_title ) { if ( ! empty( $shop_data['address'][ $address_key ] ) ) { if ( 'country' === $address_key ) { $countries = WC()->countries->get_countries(); $country_name = ! empty( $countries[ $shop_data['address'][ $address_key ] ] ) ? $countries[ $shop_data['address'][ $address_key ] ] : ''; $address_data[] = $address_data_title . ': ' . $country_name; } elseif ( 'state' === $address_key ) { $states = WC()->countries->get_states( $shop_data['address']['country'] ); $state_name = isset( $states[ $shop_data['address'][ $address_key ] ] ) ? $states[ $shop_data['address'][ $address_key ] ] : $shop_data['address'][ $address_key ]; $address_data[] = $address_data_title . ': ' . $state_name; } else { $address_data[] = $address_data_title . ': ' . $shop_data['address'][ $address_key ]; } } } $value = implode( ', ', $address_data ); } if ( in_array( $prop, [ 'banner', 'gravatar' ], true ) ) { $attachment_url = wp_get_attachment_url( $shop_data[ $prop ] ); $value = sprintf( '%1$s', $attachment_url ); } $value = apply_filters( 'dokan_privacy_export_vendor_personal_data_prop_value', $value, $prop, $vendor ); if ( $value ) { $personal_data[] = [ 'name' => $description, 'value' => $value, ]; } } $payment_data = []; $payment_profile = $vendor->get_payment_profiles(); foreach ( $payment_profile as $payment_method => $method_data ) { $value = ''; if ( 'bank' === $payment_method ) { $bank_data = []; $name = __( 'Bank Details', 'dokan-lite' ); $bank_fields = [ 'ac_name' => __( 'Account Name', 'dokan-lite' ), 'ac_number' => __( 'Account Number', 'dokan-lite' ), 'bank_name' => __( 'Bank Name', 'dokan-lite' ), 'bank_addr' => __( 'Bank Address', 'dokan-lite' ), 'routing_number' => __( 'Routing Number', 'dokan-lite' ), 'iban' => __( 'IBAN', 'dokan-lite' ), 'swift' => __( 'Swift Code', 'dokan-lite' ), ]; foreach ( $bank_fields as $field_key => $field_value ) { $bank_data[] = $field_value . ': ' . $payment_profile['bank'][ $field_key ]; } $value = implode( ', ', $bank_data ); } if ( 'paypal' === $payment_method ) { $name = __( 'PayPal Email', 'dokan-lite' ); $value = isset( $method_data['email'] ) ? $method_data['email'] : ''; } if ( 'skrill' === $payment_method ) { $name = __( 'Skrill Email', 'dokan-lite' ); $value = isset( $method_data['email'] ) ? $method_data['email'] : ''; } if ( $value ) { $payment_data[] = [ 'name' => $name, 'value' => $value, ]; } $payment_data = apply_filters( 'dokan_privacy_export_vendor_payment_data', $payment_data, $value, $name, $payment_profile ); } $personal_data = array_merge( $personal_data, $payment_data ); /** * Allow extensions to register their own personal data for this vendor for the export. * * @since 2.8.2 * * @param array $personal_data array of name value pairs * @param WC_Order $order a vendor object */ $personal_data = apply_filters( 'dokan_privacy_export_vendor_personal_data', $personal_data, $vendor ); return $personal_data; } /** * Vendor Data Eraser. * * @since 2.8.2 * * @return array */ public function vendor_data_eraser( $email_address, $page ) { $response = [ 'items_removed' => false, 'items_retained' => false, 'message' => [], 'done' => true, ]; $user = get_user_by( 'email', $email_address ); // Check if user has an ID in the DB to load stored personal data. $vendor = dokan()->vendor->get( $user->ID ); if ( ! $vendor ) { return; } $shop_data = $vendor->get_shop_info(); if ( ! is_array( $shop_data ) || empty( $shop_data ) ) { return; } $this->erase_array_data( $shop_data ); $update_data = []; $updated_data = $shop_data; if ( is_array( $updated_data ) && ! empty( $updated_data ) ) { $erased = true; } else { $erased = false; } if ( $erased ) { update_user_meta( $user->ID, 'dokan_profile_settings', $updated_data ); /* translators: vendor name. */ $response['messages'][] = sprintf( __( 'Vendor %s data is removed.', 'dokan-lite' ), $vendor->get_name() ); $response['items_removed'] = true; } /* * Allow extensions to remove data for this vendor and adjust the response. * * @since 2.8.2 * * @param array $response Array resonse data. Must include messages, num_items_removed, num_items_retained, done. */ return apply_filters( 'dokan_privacy_erase_personal_data_vendor', $response, $vendor ); } /** * Errase array data * * @since 2.8.2 * * @param array * * @return array */ public function erase_array_data( &$data ) { if ( ! is_array( $data ) ) { return; } foreach ( $data as $key => &$value ) { if ( is_array( $value ) ) { $this->erase_array_data( $value ); } else { $value = ''; } } } }Frontlader Hydrac EK2100 Visio
Kommentare des Verkäufers