ACF 的 JS API

需求是我要在刪除 Repeater 欄位的當下觸發 myCred 外掛扣點 API,也就是當點擊移除按鈕時,點選 Tooltip 裡面的刪除時觸發。

本想從前端做,但查了之後才發現原來 ACF 有很完整的 JavaScript API ,首先用 JS 判斷該頁面是否有 acf 物件,有的話就可以呼叫 addAction 方法,該方法帶有兩個參數,第一個是觸發的時機點,依照我目前的需求是 remove,第二個參數是回呼函示,帶有目前觸發物件的 $el 參數,稍後我就可以用這個物件取得欄位的值。

完整的使用範例可以參考 ACF 的官方文件

我的實作如下:

if (typeof acf !== 'undefined') {
	acf.addAction('remove', function($el) {
		var data = {
			user_id: $el.find('td[data-name="user"] select').val(),
		};
		$.ajax({
			url: ajaxurl,
			data: data,
			type: 'POST',
			dataType: "json",
			success: function(data) {
				console.log("user point -1")
			}
		})
	})
};
AI 文章延伸

讓 AI 幫你讀這篇文章

選擇平台後會自動帶入閱讀脈絡,快速整理重點、補齊盲點,並延伸到同站相關文章。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料