wp.4.0.1에 큰 문제가 있습니다. 나는 클라이언트를 위해 관리 회사 소프트웨어를 만들고, 모두는 wordpress 기능/plugins/actions & stuff에 기반을두고있다.Wordpress 사용자 지정 작업/필터가 두 번 실행됩니다.
class AppNoteCommand{
function AppNoteCommand() {
$this->table_note = 'wp_app_noteCommand';
$this->table_stock = 'wp_app_products_stock';
$this->instance = $this;
add_action('saveNoteCommand', array($this, 'hookSaveNoteCommand'), 10, 4);
add_action('saveNoteCommand', array($this, 'updatingStock'), 20, 4);
}
function hookSaveNoteCommand($noteFields, $clientFields, $stockFields, $dbAction) {
global $wpdb;
printr($noteFields);
if ($dbAction == 'update' && (int) $noteFields['id'] >0) {
$wpdb->update($this->table_note, $noteFields, array('id' => $noteFields['id']));
} else $wpdb->insert($this->table_note, $noteFields);
}
function updatingStock($noteFields, $clientFields, $stockFields, $dbAction) {
global $wpdb;
printr($stockFields);
if ($dbAction != 'update') {
foreach ($stockFields['products'] as $product_id=>$stock) {
$wpdb->query("UPDATE {$this->table_stock} SET stock=stock-{$stock} WHERE product_id='{$product_id}' AND location_id='{$stockFields['location_id']}'");
echo mysql_error()."<br />";
}
}
}
}
주된 문제점은 saveNoteCommand가 저장 명령을 두 번 실행 한 사람입니다. 첫 번째 실행은 괜찮지 만 두 번째 실행은 MySQL (중복 키 프라이 머리)에서 오류를 생성합니다. 나는 왜 wordpress가 어떤 행동을 위해 등록 된 하나의 함수를 두 번 실행했는지 이해하지 못한다. 나는이 문제가 일반적으로 wordpress에 있다고 생각한다. 이 액션에서 선언 된 모든 함수는 두 번 실행됩니다.
누군가 나에게이 문제를 해결하기 위해, 또는 말해 도와 드릴까요 내가 뭔가 잘못
왜 함수 안에'add_action()'이 있습니까? – rnevius