2015-03-23 1 views
0

Привет Я хотел бы спросить вас, ребята, если это возможно в WooCommerce перехватываетWooCommerce woocommerce_order_status_processing триггер только в стороне пользователя

крючок я использую это один, woocommerce_order_status_processing

Я хочу только этот крючок который будет вызван в пользовательской части после оплаты, который работает нормально, но в администраторе, если я изменяю статус oder, этот hook также запускается, могу ли я отключить свой пользовательский hook в admin и запускать/запускать только для пользователя?

add_action('woocommerce_order_status_processing', 'order_extracode'); 
function order_extracod($order_id) { 
..... 
} 

приведенный выше код функции и крюк я добавил, я попробовал! Is_admin(), но он не работает, и до сих пор обработки этой функции в админ Заказы

спасибо (TIA)

ответ

0

WooCommere не может определить разницу между тем, кто запускает действие woocommerce_order_status_processing.

Если вы хотите, чтобы что-то произошло, когда пользователь завершил оплату, вы можете попробовать крючок woocommerce_payment_complete в abstract-wc-order.php.

1

В качестве альтернативы вы можете использовать current_user_can() функцию, чтобы определить, является ли крюк может быть выполнен или нет, как этот

if(!current_user_can('administrator') && !current_user_can('manage_options')) { 
    //do your stuff 
} 
0

Этот крючок будет выполняться каждый раз, когда есть изменение STATU. Что вы можете сделать, так это решить, хотите ли вы выполнить код спереди или в Личном кабинете.

add_action('woocommerce_order_status_processing', 'order_extracode'); 
function order_extracod($order_id) { 
    if(! is_admin()){ 
    // Your code here 
    } 
} 

Единственный условный тег, чтобы обнаружить, если вы находитесь в панели управления или не является is_admin()