it-swarm-ko.tech

Ubercart에서 프로그래밍 방식으로 장바구니에 제품을 어떻게 추가합니까?

사용자가 특정 콘텐츠 유형의 개별 노드를 구매해야하는 사이트 섹션을 만들고 있습니다. 사용성을 높이기 위해 사용자는 비용을 지불하지 않고 노드를 생성 한 다음 "게시되지 않음"으로 저장하여 사이트에 아직 표시되지 않도록합니다. 그런 다음 사용자가 지불하면 노드를 게시합니다. 따라서 사용자가 특정 유형의 노드를 만들 때마다 사용자의 장바구니에 제품 (특정 노드를 게시 할 수있는 권한을 나타냄)을 추가해야합니다.

hook_nodeapi()을 구현하여 노드 생성 이벤트에 연결할 수 있지만 제품을 장바구니에 추가하려면 어떻게해야합니까?

5
Chaulky

사용자가 작성하는 노드가 유효한 제품 유형 노드입니까? 어쨌든 이것을 시도 할 수 있습니다- http://api.lullabot.com/uc_cart_add_item

uc_cart_add_item($nid, $qty = 1, $data = NULL, $cid = NULL, $msg = TRUE, $check_redirect = TRUE, $rebuild = TRUE)

여기서 $ nid = 제품의 nid, $ cid = 카트 ID (사용자 ID)- http://api.lullabot.com/uc_cart_get_id

도움이 되었기를 바랍니다.

9
Dipen

다음 코드를 사용할 수 있습니다. 여기서 $ nid는 제품 노드 ID입니다.

중복 7

  $nid = 4844;
  $form_state = array(
    'values' => array(
      'nid' => $nid,
      'qty' => 1,
    ),
  );
  $node = node_load($nid);
  drupal_form_submit("uc_product_add_to_cart_form", $form_state, $node);

중복 6

  $nid = 4844;
  $form_state = array(
    'values' => array(
      'nid' => $nid,
      'qty' => 1,
    ),
  );
  $node = node_load($nid);
  drupal_execute("uc_product_add_to_cart_form", $form_state, $node);
2
kenorb

Bsenftner의 의견이 잘못되었습니다. Nodecheckout을 통해 고객은 지불하기 전에 노드를 작성할 수 있습니다.

"따라서 사용자가 특정 유형의 노드를 만들 때마다 사용자의 카트에 제품 (특정 노드를 게시 할 수있는 권한을 나타냄)을 추가해야합니다."

... 정확하게 Nodecheckout이하는 것입니다.

사용자가 광고를 만들 수있는 분류 된 광고 시스템이 있습니다. 저장시 Nodecheckout은 "Classified Advert-6 Months"라는 (제품) 노드를 장바구니에 추가합니다. 이 제품에 대한 비용을 지불하면 해당 노드가 게시됩니다.

익명 사용자도 광고를 작성한 다음 체크 아웃 프로세스의 일부로 계정을 작성할 수 있습니다.

0
griz