پرسش کاربر :
من فرمی دارم که آواتار آپلود شده کاربر را نشان می دهد و در صورتی که کابر بخواهد می تواند آواتار را حذف کند، به این صورت که ووکامرس دکمه حذف را نشان می دهد. همه چیز به درستی کار می کند.
مشکل من این است که آواتار نمایش داده شده و دکمه حذف با هم ادغام شده اند و اگر بخواهم دکمه حذف را به جای دیگری منتقل کنم نمی توانم این کار را انجام دهم. (باگ اینجاست)
چیزی که نیاز دارم راهی برای فراخوانی دکمه حذف در هر جای فرم به صورت اجرا شدن یک تابع است.
خط کدی که کاربر فکر می کند باید حذف شود :
echo '<a href=' . wc_get_account_endpoint_url('impostazioni') . '?rm_profile_image_id=' . $attachment_id . '> ' . __('Remove') . ' </a>';
و تابع کاملی که کاربر استفاده می کند کد زیر است :
// Display / Remove Avatar function action_woocommerce_edit_account_form($size) { // Get current user id $user_id = get_current_user_id(); // Get attachment id $attachment_id = get_user_meta($user_id, 'image', true); // True if ($attachment_id) { $original_image_url = wp_get_attachment_url($attachment_id); // Display Image instead of URL echo wp_get_attachment_image($attachment_id, $size = array('150', '150')); // Invece dell'array size, stava 'full' come parametro. if (isset($_GET['rm_profile_image_id'])) { if ($attachment_id == $_GET['rm_profile_image_id']) { wp_delete_attachment($attachment_id); //delete_user_meta($user_id, 'image'); if (delete_user_meta($user_id, 'image')) { wp_delete_attachment($attachment_id); } ?><script>window.location='<?php echo wc_get_account_endpoint_url('impostazioni') ?>';</script><?php exit(); } } else { echo '<a href=' . wc_get_account_endpoint_url('impostazioni') . '?rm_profile_image_id=' . $attachment_id . '> ' . __('Remove') . ' </a>'; } } } add_action( 'woocommerce_edit_account_form_start', 'action_woocommerce_edit_account_form' );
روش اول
از کد زیر استفاده کنید :
قطعه کدی که در زیر مشاهده می کنید توسط برنامه کامپایلر به جهت تست آزمایش شده و خروجی صحیح مدنظر را بدست آورد.
<form name="Form" class="mts-edit-account" action="" method="post" <?php do_action( 'woocommerce_edit_account_form_tag' );?> > <!-- Avatar Remove button --> <div class="global_container avatar"> <?php if (isset($_GET['rm_profile_image_id'])) { if ($attachment_id == $_GET['rm_profile_image_id']) { wp_delete_attachment($attachment_id); //delete_user_meta($user_id, 'image'); if (delete_user_meta($user_id, 'image')) { wp_delete_attachment($attachment_id); } ?><script>window.location='<?php echo wc_get_account_endpoint_url('impostazioni') ?>';</script><?php exit(); } } else { echo '<a href=' . wc_get_account_endpoint_url('impostazioni') . '?rm_profile_image_id=' . $attachment_id . '> ' . __('Remove') . ' </a>'; } ?> </div> //Other fields........ </form>
ممنون
کدش کار کرد
سپاس