| @@ 522-580 (lines=59) @@ | ||
| 519 | * @param array $data |
|
| 520 | * @return array |
|
| 521 | */ |
|
| 522 | public function bulk( $data ) { |
|
| 523 | ||
| 524 | try { |
|
| 525 | if ( ! isset( $data['coupons'] ) ) { |
|
| 526 | throw new WC_API_Exception( 'woocommerce_api_missing_coupons_data', sprintf( __( 'No %1$s data specified to create/edit %1$s', 'woocommerce' ), 'coupons' ), 400 ); |
|
| 527 | } |
|
| 528 | ||
| 529 | $data = $data['coupons']; |
|
| 530 | $limit = apply_filters( 'woocommerce_api_bulk_limit', 100, 'coupons' ); |
|
| 531 | ||
| 532 | // Limit bulk operation |
|
| 533 | if ( count( $data ) > $limit ) { |
|
| 534 | throw new WC_API_Exception( 'woocommerce_api_coupons_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request', 'woocommerce' ), $limit ), 413 ); |
|
| 535 | } |
|
| 536 | ||
| 537 | $coupons = array(); |
|
| 538 | ||
| 539 | foreach ( $data as $_coupon ) { |
|
| 540 | $coupon_id = 0; |
|
| 541 | ||
| 542 | // Try to get the coupon ID |
|
| 543 | if ( isset( $_coupon['id'] ) ) { |
|
| 544 | $coupon_id = intval( $_coupon['id'] ); |
|
| 545 | } |
|
| 546 | ||
| 547 | // Coupon exists / edit coupon |
|
| 548 | if ( $coupon_id ) { |
|
| 549 | $edit = $this->edit_coupon( $coupon_id, array( 'coupon' => $_coupon ) ); |
|
| 550 | ||
| 551 | if ( is_wp_error( $edit ) ) { |
|
| 552 | $coupons[] = array( |
|
| 553 | 'id' => $coupon_id, |
|
| 554 | 'error' => array( 'code' => $edit->get_error_code(), 'message' => $edit->get_error_message() ) |
|
| 555 | ); |
|
| 556 | } else { |
|
| 557 | $coupons[] = $edit['coupon']; |
|
| 558 | } |
|
| 559 | } |
|
| 560 | ||
| 561 | // Coupon don't exists / create coupon |
|
| 562 | else { |
|
| 563 | $new = $this->create_coupon( array( 'coupon' => $_coupon ) ); |
|
| 564 | ||
| 565 | if ( is_wp_error( $new ) ) { |
|
| 566 | $coupons[] = array( |
|
| 567 | 'id' => $coupon_id, |
|
| 568 | 'error' => array( 'code' => $new->get_error_code(), 'message' => $new->get_error_message() ) |
|
| 569 | ); |
|
| 570 | } else { |
|
| 571 | $coupons[] = $new['coupon']; |
|
| 572 | } |
|
| 573 | } |
|
| 574 | } |
|
| 575 | ||
| 576 | return array( 'coupons' => apply_filters( 'woocommerce_api_coupons_bulk_response', $coupons, $this ) ); |
|
| 577 | } catch ( WC_API_Exception $e ) { |
|
| 578 | return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); |
|
| 579 | } |
|
| 580 | } |
|
| 581 | } |
|
| 582 | ||
| @@ 454-511 (lines=58) @@ | ||
| 451 | * |
|
| 452 | * @return array |
|
| 453 | */ |
|
| 454 | public function bulk( $data ) { |
|
| 455 | try { |
|
| 456 | if ( ! isset( $data['taxes'] ) ) { |
|
| 457 | throw new WC_API_Exception( 'woocommerce_api_missing_taxes_data', sprintf( __( 'No %1$s data specified to create/edit %1$s', 'woocommerce' ), 'taxes' ), 400 ); |
|
| 458 | } |
|
| 459 | ||
| 460 | $data = $data['taxes']; |
|
| 461 | $limit = apply_filters( 'woocommerce_api_bulk_limit', 100, 'taxes' ); |
|
| 462 | ||
| 463 | // Limit bulk operation |
|
| 464 | if ( count( $data ) > $limit ) { |
|
| 465 | throw new WC_API_Exception( 'woocommerce_api_taxes_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request', 'woocommerce' ), $limit ), 413 ); |
|
| 466 | } |
|
| 467 | ||
| 468 | $taxes = array(); |
|
| 469 | ||
| 470 | foreach ( $data as $_tax ) { |
|
| 471 | $tax_id = 0; |
|
| 472 | ||
| 473 | // Try to get the tax rate ID |
|
| 474 | if ( isset( $_tax['id'] ) ) { |
|
| 475 | $tax_id = intval( $_tax['id'] ); |
|
| 476 | } |
|
| 477 | ||
| 478 | // Tax rate exists / edit tax rate |
|
| 479 | if ( $tax_id ) { |
|
| 480 | $edit = $this->edit_tax( $tax_id, array( 'tax' => $_tax ) ); |
|
| 481 | ||
| 482 | if ( is_wp_error( $edit ) ) { |
|
| 483 | $taxes[] = array( |
|
| 484 | 'id' => $tax_id, |
|
| 485 | 'error' => array( 'code' => $edit->get_error_code(), 'message' => $edit->get_error_message() ) |
|
| 486 | ); |
|
| 487 | } else { |
|
| 488 | $taxes[] = $edit['tax']; |
|
| 489 | } |
|
| 490 | } |
|
| 491 | ||
| 492 | // Tax rate don't exists / create tax rate |
|
| 493 | else { |
|
| 494 | $new = $this->create_tax( array( 'tax' => $_tax ) ); |
|
| 495 | ||
| 496 | if ( is_wp_error( $new ) ) { |
|
| 497 | $taxes[] = array( |
|
| 498 | 'id' => $tax_id, |
|
| 499 | 'error' => array( 'code' => $new->get_error_code(), 'message' => $new->get_error_message() ) |
|
| 500 | ); |
|
| 501 | } else { |
|
| 502 | $taxes[] = $new['tax']; |
|
| 503 | } |
|
| 504 | } |
|
| 505 | } |
|
| 506 | ||
| 507 | return array( 'taxes' => apply_filters( 'woocommerce_api_taxes_bulk_response', $taxes, $this ) ); |
|
| 508 | } catch ( WC_API_Exception $e ) { |
|
| 509 | return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); |
|
| 510 | } |
|
| 511 | } |
|
| 512 | ||
| 513 | /** |
|
| 514 | * Get all tax classes |
|
| @@ 774-832 (lines=59) @@ | ||
| 771 | * @param array $data |
|
| 772 | * @return array |
|
| 773 | */ |
|
| 774 | public function bulk( $data ) { |
|
| 775 | ||
| 776 | try { |
|
| 777 | if ( ! isset( $data['customers'] ) ) { |
|
| 778 | throw new WC_API_Exception( 'woocommerce_api_missing_customers_data', sprintf( __( 'No %1$s data specified to create/edit %1$s', 'woocommerce' ), 'customers' ), 400 ); |
|
| 779 | } |
|
| 780 | ||
| 781 | $data = $data['customers']; |
|
| 782 | $limit = apply_filters( 'woocommerce_api_bulk_limit', 100, 'customers' ); |
|
| 783 | ||
| 784 | // Limit bulk operation |
|
| 785 | if ( count( $data ) > $limit ) { |
|
| 786 | throw new WC_API_Exception( 'woocommerce_api_customers_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request', 'woocommerce' ), $limit ), 413 ); |
|
| 787 | } |
|
| 788 | ||
| 789 | $customers = array(); |
|
| 790 | ||
| 791 | foreach ( $data as $_customer ) { |
|
| 792 | $customer_id = 0; |
|
| 793 | ||
| 794 | // Try to get the customer ID |
|
| 795 | if ( isset( $_customer['id'] ) ) { |
|
| 796 | $customer_id = intval( $_customer['id'] ); |
|
| 797 | } |
|
| 798 | ||
| 799 | // Customer exists / edit customer |
|
| 800 | if ( $customer_id ) { |
|
| 801 | $edit = $this->edit_customer( $customer_id, array( 'customer' => $_customer ) ); |
|
| 802 | ||
| 803 | if ( is_wp_error( $edit ) ) { |
|
| 804 | $customers[] = array( |
|
| 805 | 'id' => $customer_id, |
|
| 806 | 'error' => array( 'code' => $edit->get_error_code(), 'message' => $edit->get_error_message() ) |
|
| 807 | ); |
|
| 808 | } else { |
|
| 809 | $customers[] = $edit['customer']; |
|
| 810 | } |
|
| 811 | } |
|
| 812 | ||
| 813 | // Customer don't exists / create customer |
|
| 814 | else { |
|
| 815 | $new = $this->create_customer( array( 'customer' => $_customer ) ); |
|
| 816 | ||
| 817 | if ( is_wp_error( $new ) ) { |
|
| 818 | $customers[] = array( |
|
| 819 | 'id' => $customer_id, |
|
| 820 | 'error' => array( 'code' => $new->get_error_code(), 'message' => $new->get_error_message() ) |
|
| 821 | ); |
|
| 822 | } else { |
|
| 823 | $customers[] = $new['customer']; |
|
| 824 | } |
|
| 825 | } |
|
| 826 | } |
|
| 827 | ||
| 828 | return array( 'customers' => apply_filters( 'woocommerce_api_customers_bulk_response', $customers, $this ) ); |
|
| 829 | } catch ( WC_API_Exception $e ) { |
|
| 830 | return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); |
|
| 831 | } |
|
| 832 | } |
|
| 833 | } |
|
| 834 | ||
| @@ 1804-1862 (lines=59) @@ | ||
| 1801 | * @param array $data |
|
| 1802 | * @return array |
|
| 1803 | */ |
|
| 1804 | public function bulk( $data ) { |
|
| 1805 | ||
| 1806 | try { |
|
| 1807 | if ( ! isset( $data['orders'] ) ) { |
|
| 1808 | throw new WC_API_Exception( 'woocommerce_api_missing_orders_data', sprintf( __( 'No %1$s data specified to create/edit %1$s', 'woocommerce' ), 'orders' ), 400 ); |
|
| 1809 | } |
|
| 1810 | ||
| 1811 | $data = $data['orders']; |
|
| 1812 | $limit = apply_filters( 'woocommerce_api_bulk_limit', 100, 'orders' ); |
|
| 1813 | ||
| 1814 | // Limit bulk operation |
|
| 1815 | if ( count( $data ) > $limit ) { |
|
| 1816 | throw new WC_API_Exception( 'woocommerce_api_orders_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request', 'woocommerce' ), $limit ), 413 ); |
|
| 1817 | } |
|
| 1818 | ||
| 1819 | $orders = array(); |
|
| 1820 | ||
| 1821 | foreach ( $data as $_order ) { |
|
| 1822 | $order_id = 0; |
|
| 1823 | ||
| 1824 | // Try to get the order ID |
|
| 1825 | if ( isset( $_order['id'] ) ) { |
|
| 1826 | $order_id = intval( $_order['id'] ); |
|
| 1827 | } |
|
| 1828 | ||
| 1829 | // Order exists / edit order |
|
| 1830 | if ( $order_id ) { |
|
| 1831 | $edit = $this->edit_order( $order_id, array( 'order' => $_order ) ); |
|
| 1832 | ||
| 1833 | if ( is_wp_error( $edit ) ) { |
|
| 1834 | $orders[] = array( |
|
| 1835 | 'id' => $order_id, |
|
| 1836 | 'error' => array( 'code' => $edit->get_error_code(), 'message' => $edit->get_error_message() ) |
|
| 1837 | ); |
|
| 1838 | } else { |
|
| 1839 | $orders[] = $edit['order']; |
|
| 1840 | } |
|
| 1841 | } |
|
| 1842 | ||
| 1843 | // Order don't exists / create order |
|
| 1844 | else { |
|
| 1845 | $new = $this->create_order( array( 'order' => $_order ) ); |
|
| 1846 | ||
| 1847 | if ( is_wp_error( $new ) ) { |
|
| 1848 | $orders[] = array( |
|
| 1849 | 'id' => $order_id, |
|
| 1850 | 'error' => array( 'code' => $new->get_error_code(), 'message' => $new->get_error_message() ) |
|
| 1851 | ); |
|
| 1852 | } else { |
|
| 1853 | $orders[] = $new['order']; |
|
| 1854 | } |
|
| 1855 | } |
|
| 1856 | } |
|
| 1857 | ||
| 1858 | return array( 'orders' => apply_filters( 'woocommerce_api_orders_bulk_response', $orders, $this ) ); |
|
| 1859 | } catch ( WC_API_Exception $e ) { |
|
| 1860 | return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) ); |
|
| 1861 | } |
|
| 1862 | } |
|
| 1863 | } |
|
| 1864 | ||