WPInv_CLI::insert_invoice()   A
last analyzed

Complexity

Conditions 6
Paths 17

Size

Total Lines 34
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 6
eloc 14
c 1
b 1
f 0
nc 17
nop 2
dl 0
loc 34
rs 9.2222
1
<?php
2
/**
3
 * Contains the main CLI class
4
 *
5
 * @since 1.0.13
6
 * @package Invoicing
7
 */
8
9
// MUST have WordPress.
10
if ( ! defined( 'WPINC' ) ) {
11
    exit;
12
}
13
14
/**
15
 * The main class responsible for registering CLI commands
16
 * @since 1.0.13
17
 */
18
class WPInv_CLI {
19
20
    /**
21
     * Creates a new invoice
22
     *
23
     *  @param Array $args Arguments in array format.
24
     *  @param Array $assoc_args Key value arguments stored in associated array format.
25
     *  @since 1.0.13
26
     */
27
    public function insert_invoice( $args, $assoc_args ) {
0 ignored issues
show
Unused Code introduced by
The parameter $args is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

27
    public function insert_invoice( /** @scrutinizer ignore-unused */ $args, $assoc_args ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
28
29
        // Fetch invoice data from the args
30
        $invoice_data = wp_unslash( $assoc_args );
31
32
        // Abort if no invoice data is provided
33
        if ( empty( $invoice_data ) ) {
34
            return WP_CLI::error( __( 'Invoice data not provided', 'invoicing' ) );
0 ignored issues
show
Bug introduced by
The type WP_CLI was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
35
        }
36
37
        //Cart details
38
        if ( ! empty( $invoice_data['cart_details'] ) ) {
39
            $invoice_data['cart_details'] = json_decode( $invoice_data['cart_details'], true );
40
        }
41
42
        //User details
43
        if ( ! empty( $invoice_data['user_info'] ) ) {
44
            $invoice_data['user_info'] = json_decode( $invoice_data['user_info'], true );
45
        }
46
47
        //Payment info
48
        if ( ! empty( $invoice_data['payment_details'] ) ) {
49
            $invoice_data['payment_details'] = json_decode( $invoice_data['payment_details'], true );
50
        }
51
52
        // Try creating the invoice
53
        $invoice = wpinv_insert_invoice( $invoice_data, true );
54
55
        if ( is_wp_error( $invoice ) ) {
56
            return WP_CLI::error( $invoice->get_error_message() );
0 ignored issues
show
Bug introduced by
The method get_error_message() does not exist on WPInv_Invoice. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

56
            return WP_CLI::error( $invoice->/** @scrutinizer ignore-call */ get_error_message() );

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
57
        }
58
59
        $message = sprintf( __( 'Invoice %s created', 'invoicing' ), $invoice->get_id() );
0 ignored issues
show
Bug introduced by
The method get_id() does not exist on WP_Error. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

59
        $message = sprintf( __( 'Invoice %s created', 'invoicing' ), $invoice->/** @scrutinizer ignore-call */ get_id() );

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
60
        WP_CLI::success( $message );
61
    }
62
63
64
}
65