需求是我要在刪除 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")
}
})
})
};