if ( ! function_exists( 'wcj_add_my_account_order_actions' ) ) { /* * wcj_add_my_account_order_actions. */ function wcj_add_my_account_order_actions( $actions, $order ) { if ( 'completed' != $order->get_status() ) { $actions['wcj_mark_completed_by_customer'] = array( 'url' => wp_nonce_url( add_query_arg( array( 'wcj_action' => 'wcj_woocommerce_mark_order_status', 'order_id' => $order->get_id() ) ), 'wcj-woocommerce-mark-order-status' ), 'name' => __( 'Complete', 'woocommerce-jetpack' ), ); } return $actions; } } add_filter( 'woocommerce_my_account_my_orders_actions', 'wcj_add_my_account_order_actions', 10, 2 ); if ( ! function_exists( 'wcj_add_js_conformation' ) ) { /* * wcj_add_js_conformation. */ function wcj_add_js_conformation() { echo ''; } } add_action( 'wp_footer', 'wcj_add_js_conformation' ); if ( ! function_exists( 'wcj_woocommerce_mark_order_status' ) ) { /* * wcj_woocommerce_mark_order_status. */ function wcj_woocommerce_mark_order_status() { if ( isset( $_GET['wcj_action'] ) && 'wcj_woocommerce_mark_order_status' === $_GET['wcj_action'] && isset( $_GET['order_id'] ) && isset( $_GET['_wpnonce'] ) ) { if ( wp_verify_nonce( $_GET['_wpnonce'], 'wcj-woocommerce-mark-order-status' ) ) { $_order = wc_get_order( $_GET['order_id'] ); if ( $_order->get_customer_id() === get_current_user_id() ) { $_order->update_status( 'completed' ); wp_safe_redirect( remove_query_arg( array( 'wcj_action', 'order_id', '_wpnonce' ) ) ); exit; } } } } } add_action( 'init', 'wcj_woocommerce_mark_order_status' );