WooCommerce добавляет товары в другие корзины

Я хочу программно добавлять элементы в другие корзины в WooCommerce.

Пример:

Клиент A получает CusomterId от клиента B и хочет добавить товар в корзину от клиента B . Как мне удается добавить товар в корзину клиента B, указав CustomerId клиента B в коде PHP.

Я устал настраивать мутацию addToCart из Woocomerce и добавил ключ (ключ - это CustomerId от клиента B), чтобы получить сеанс с CustomerId клиента B, но я не работал так, как хотел. Кто-нибудь может мне помочь?

function mutate_and_get_payload() {
        return function( $input, AppContext $context, ResolveInfo $info ) {
      global $encryption_key;
            $cryptor = new Cryptor($encryption_key);

            if($input['key']){
                $user_id = $cryptor->decrypt($input['key']);
       
             // Get an instance of the WC_Session_Handler Object
                $session_handler = new WC_Session_Handler();
        $context->viewer->ID = intval($user_id);
          $context->viewer->data->ID = intval($user_id);
                // Get the user session from its user ID:
                $session = $session_handler->get_session($user_id);
            }
     Cart_Mutation::check_session_token();

            // Retrieve product database ID if relay ID provided.
            if ( empty( $input['productId'] ) ) {
                throw new UserError( __( 'No product ID provided', 'wp-graphql-woocommerce' ) );
            }

            if ( ! \wc_get_product( $input['productId'] ) ) {
                throw new UserError( __( 'No product found matching the ID provided', 'wp-graphql-woocommerce' ) );
            }
      
      // Prepare args for "add_to_cart" from input data.
     
            $cart_item_args = Cart_Mutation::prepare_cart_item( $input, $context, $info );
       
            // Add item to cart and get item key.
            $cart_item_key = \WC()->cart->add_to_cart( ...$cart_item_args );
      
            if ( empty( $cart_item_key ) ) {
                throw new UserError( __( 'Failed to add cart item. Please check input.', 'wp-graphql-woocommerce' ) );
            }

            // Return payload.
            return array( 'key' => $cart_item_key );
        };
  }

0 ответов

Другие вопросы по тегам