فراخوانی یک تابع در هرکجای فرم ووکامرس

کد با ما - کد ووکامرس
کد با ما – کد ووکامرس

پرسش کاربر :

من فرمی دارم که آواتار آپلود شده کاربر را نشان می دهد و در صورتی که کابر بخواهد می تواند آواتار را حذف کند، به این صورت که ووکامرس دکمه حذف را نشان می دهد. همه چیز به درستی کار می کند.

مشکل من این است که آواتار نمایش داده شده و دکمه حذف با هم ادغام شده اند و اگر بخواهم دکمه حذف را به جای دیگری منتقل کنم نمی توانم این کار را انجام دهم. (باگ اینجاست)

چیزی که نیاز دارم راهی برای فراخوانی دکمه حذف در هر جای فرم به صورت اجرا شدن یک تابع است.

خط کدی که کاربر فکر می کند باید حذف شود :

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>

 

کدهای ووکامرس بیشتر

آیا این نوشته برای شما مفید بود ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.