Add the Name of Products Ordered to Admin New Order Email WooCommerce

Since Woocommerce 3 your actual code is a bit outdated. In the following you will get all products names (coma separated) in the email subject.

add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 10, 2);
function change_admin_email_subject( $subject, $order ) {
    $products_names = array();

    foreach ( $order->get_items() as $item ) {
        $products_names[] = $item->get_name();
    }

    return sprintf( '[%s] New Customer Order (#%s) of %s from %s %s', 
        wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), 
        $order->get_id(), 
        implode(', ', $products_names),
        $order->get_billing_first_name(),  
        $order->get_billing_last_name()
    );
}