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' );