amin3d 17 ارسال شده در شهریور 95 گزارش بازنشر ارسال شده در شهریور 95 هو العلیم، سلام، من دنبال یک action یا filter هستم که زمانی فایر شود که برروی دکمه تکمیل شده در لیست سفارشات کلیک نماییم، من حتی تابع مربوط به این رخداد را پیدا کردم و فیلتر مربوط به ان را اما نمی دونم چرا کد من run نمی شود. mark_order_status در فایل class-wc-ajax.php قرار دارد و اکشن مربوطه هم woocommerce_order_edit_status است. نقل قول لینک به ارسال
amin3d 17 ارسال شده در شهریور 95 مالک گزارش بازنشر ارسال شده در شهریور 95 هو العلیم، سلام مجدد، مشکل حل شد، ایراد از کدم بود. من این سبکی استفاده کردم. $this->loader->add_action( 'woocommerce_order_edit_status', $plugin_admin, 'status_completed'); اینم در کلاس دیگر:: public function status_completed( $order_id) { $status = sanitize_text_field( $_GET['status'] ); if(!empty($status) && $status=='completed') { global $wpdb; $table_name = $wpdb->prefix . 'pana_points'; $order = new WC_Order($order_id); $user_id = $order->user_id; $refer = get_user_meta( $user_id, 'user_reffer', true ); if(!empty($refer)) { $user_info = get_user_by( 'login', $refer ); $total=$order->get_total(); $persent = 10; $porsant=ceil(($total*$persent)/100); $wpdb->insert( $table_name, array( 'created_at' => current_time( 'mysql' ), 'user_id' => $user_info->ID, 'amount' => $porsant, 'order_id' => $order_id, 'type' => 'deposit', 'method' => 'site', ) ); } } } نقل قول لینک به ارسال
Mobin 1669 ارسال شده در شهریور 95 گزارش بازنشر ارسال شده در شهریور 95 شما هوک woocommerce_order_status_completed رو تست کنید احتمالا جواب میده نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .