Прикрепить адрес электронной почты автора к продукту для PayPal - Код перестал работать - PullRequest
0 голосов
/ 25 октября 2018

Следующий код прекрасно работал на моем сайте WordPress Woocommerce, но после последнего обновления он перестал работать.

Кто-нибудь знает, что может привести к тому, что код перестает работать?

Любое понимание или помощь будет такой большой помощью, поскольку это ключевая функция моего сайта.

Спасибо!

===================================================================
     *
     * Function to enable item-specific paypal email addresses
     *
     * ================================================================ */
    function find_alt_paypal_emails() {
        global $woocommerce;
        // loop over the items in the cart
        foreach ( $woocommerce->cart->cart_contents as $item ) {
            // check to see if any of them has the 'paypal_email' meta value
            $override_email = get_post_meta($item['product_id'], 'paypal_email', true);
            // if there is an override val, build an array of each item name and the
            // paypal email associated with that item
            if ( ! empty( $override_email ) ) {
                $paypal_override = array(
                    'item_title' => $item['data']->post->post_title,
                    'email' => $override_email
                    );
                $paypal_overrides[] = $paypal_override;
                // error_log(print_r($paypal_overrides,true));
            }
        }
        // if there are override emails indicated
        if ( ! empty( $paypal_overrides ) ) {
            // loop through and build an error message to warn the user of multiple payees
            if ( count( $paypal_overrides ) > 1 ) {
                $error_list = '';
                foreach ( $paypal_overrides as $override ) {
                    $error_list .= $override['item_title'] . ' → ' . $override['email'] . ', ';
                }
                $error_list = rtrim($error_list, ', ');
                $woocommerce->add_error( __( 'The following items send payment to different '
                    . 'PayPal Users, please place separate orders: (' . $error_list . ')', 'woocommerce' ) );
            } else {
                return $paypal_overrides[0]['email'];
            }
        }
    }
    add_action( 'woocommerce_after_cart_contents', 'find_alt_paypal_emails' );
    add_action( 'woocommerce_after_checkout_form', 'find_alt_paypal_emails' );
    add_action( 'woocommerce_after_order_total', 'find_alt_paypal_emails' );
    /*$paypal_args = apply_filters( 'woocommerce_paypal_args', $paypal_args );*/
    // Hook in
    add_filter( 'woocommerce_paypal_args' , 'custom_override_paypal_email' );
    // Our hooked in function is passed via the filter!
    function custom_override_paypal_email( $paypal_args ) {
        $alt_email = find_alt_paypal_emails();
        error_log(print_r($alt_email,true));
        if ( empty( $alt_email ) ) {
            return $paypal_args;
        }
        $paypal_args['business'] = find_alt_paypal_emails();
        print_r( $paypal_args['business'],true );
        return $paypal_args;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...