Slide 1

Slide 1 text

WooConf 2017 Data Visualization @zgordon DataVisualization Woo, JavaScript, and Beyond javascriptforwp.com/wooconf

Slide 2

Slide 2 text

WooConf 2017 Data Visualization @zgordon Raise Your Hand If

Slide 3

Slide 3 text

WooConf 2017 Data Visualization @zgordon – Where Dataviz Starts “How Can You See Your Data If You Can’t See It?”

Slide 4

Slide 4 text

WooConf 2017 Data Visualization @zgordon – Where Dataviz Starts “How Can You Know Your Data If You Can’t See It?”

Slide 5

Slide 5 text

WooConf 2017 Data Visualization @zgordon 1. Getting the Data You Need 2. Visualization Options with JavaScript 3. How to Integrate Data w Visualization Tangible Takeaways

Slide 6

Slide 6 text

WooConf 2017 Data Visualization @zgordon Before We $_GET We Should Identify() 1. Getting Data

Slide 7

Slide 7 text

WooConf 2017 Data Visualization @zgordon let data = new Indentify( erything ) 1. Getting Data

Slide 8

Slide 8 text

WooConf 2017 Data Visualization @zgordon let data = Indentify( Woo, more ) 1. Getting Data

Slide 9

Slide 9 text

WooConf 2017 Data Visualization @zgordon Sometimes You Don’t Know It Until You See It 1. Getting Data

Slide 10

Slide 10 text

WooConf 2017 Data Visualization @zgordon Default WooCommerce API Endpoints 1. Getting Data

Slide 11

Slide 11 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon /orders/ /order//notes /orders//refunds /products/ /products//variations /products/attributes/ /products/attributes//terms /products/categories/ /products/shipping_classes/ /products/tags/ /reports/ /reports/sales /reports/top_sellers /taxes/ /taxes/classes /webhooks/ /settings /settings/group/ /payment_gateways /shipping/zones/ /shipping/zones//locations /shipping/zones//methods /shipping_methods/ /system_status/ /system_status/tools/

Slide 12

Slide 12 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon /orders/ /orders//refunds /reports/ /reports/sales /reports/top_sellers /webhooks/

Slide 13

Slide 13 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon {“id”:32417,"parent_id": 0,"number":"32417","order_key":"wc_order_59e534837411c","created_via":"checkout","version":"3.2.1","status":"completed","currency":"USD","date_created":"2017-10-16T22:36:51","date_created_gmt":"2017-10-16T22:36:51","date_modifie d":"2017-10-16T22:36:51","date_modified_gmt":"2017-10-16T22:36:51","discount_total":"397.00","discount_tax":"0.00","shipping_total":"0.00","shipping_tax":"0.00","cart_tax":"0.00","total":"0.00","total_tax":"0.00","prices_include_tax":false,"c ustomer_id":1038,"customer_ip_address":"24.128.171.54","customer_user_agent":"mozilla\/5.0(macintosh;intelmacosx10_12_6)applewebkit\/537.36(khtml,likegecko)chrome\/61.0.3163.100safari\/537.36","customer_note":"","billing": {"first_name":"Test","last_name":"Person","company":"","address_1":"","address_2":"","city":"Detroit","state":"MI","postcode":"","country":"US","email":"[email protected]","phone":""},"shipping": {"first_name":"","last_name":"","company":"","address_1":"","address_2":"","city":"","state":"","postcode":"","country":""},"payment_method":"","payment_method_title":"","transaction_id":"","date_paid":"2017-10-16T22:36:51","date_paid_g mt":"2017-10-16T22:36:51","date_completed":"2017-10-16T22:36:51","date_completed_gmt":"2017-10-16T22:36:51","cart_hash":"8022970d631d1c73a2aee9b0c2493964","meta_data":[{"id": 162137,"key":"_woocommerce_t4m_discount_type","value":""},{"id":162138,"key":"_woocommerce_t4m_discount_coeffs","value":"null"},{"id":162139,"key":"_fue_recorded","value":"1"},{"id": 162140,"key":"_download_permissions_granted","value":"yes"},{"id":162144,"key":"wpf_complete","value":"1"},{"id":162145,"key":"_wcpdf_invoice_date","value":"1508193411"},{"id": 162146,"key":"_wcpdf_invoice_date_formatted","value":"2017-10-1622:36:51"},{"id":162147,"key":"_wcpdf_invoice_number","value":"Invoice00067"},{"id":162148,"key":"_wcpdf_invoice_number_data","value":{"number": 67,"formatted_number":"Invoice00067","prefix":"Invoice","suffix":"","document_type":"invoice","order_id":32417,"padding":"5"}},{"id":162149,"key":"_order_status_emails_queued","value":"1"},{"id": 162150,"key":"_order_stock_reduced","value":"yes"}],"line_items":[{"id":2087,"name":"1YrCohortProgramUpgrade","product_id":32243,"variation_id":0,"quantity": 1,"tax_class":"","subtotal":"397.00","subtotal_tax":"0.00","total":"0.00","total_tax":"0.00","taxes":[],"meta_data":[],"sku":"COHORT-UPGRADE","price":0}],"tax_lines":[],"shipping_lines":[],"fee_lines":[],"coupon_lines":[{"id":2088,"code":"zac- testeroo","discount":"397","discount_tax":"0","meta_data":[{"id":15170,"key":"coupon_data","value":{"id":32265,"code":"zac-testeroo","amount":"100","date_created":{"date":"2017-10-1604:05:12.000000","timezone_type": 1,"timezone":"+00:00"},"date_modified":{"date":"2017-10-1622:04:57.000000","timezone_type" 1,"timezone":"+00:00"},"date_expires":null,"discount_type":"percent","description":"Youknowf o rbangingonthingswithhammersandthesuch","usage_count": 46,"individual_use":false,"product_ids":[],"excluded_product_ids":[],"usage_limit":0,"usage_limit_per_user": 0,"limit_usage_to_x_items":null,"free_shipping":false,"product_categories":[],"excluded_product_categories":[],"exclude_sale_items":false,"minimum_amount":"","maximum_amount":"","email_restrictions": ["[email protected]","[email protected]"],"used_by": ["1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","4","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038" ,"1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038"],"virtual":false,"meta_data":[{"id":157976,"key":"tcb2_ready","value":"1"},{"id":157979,"key":"_publicize_pending","value":"1"},{"id": 158002,"key":"_learndash_plus","value":{"protect":false,"selectedlevels":[]}},{"id":158003,"key":"wpf-settings-woo","value":{"apply_tags":["COUPON-ZAC-TESTEROO"]}},{"id":161793,"key":"_wc_url_coupons_unique_url","value":"coupon\/zac- gets-shit-free"},{"id":161794,"key":"_wc_url_coupons_redirect_page","value":"5744"},{"id":161795,"key":"_wc_url_coupons_redirect_page_type","value":"page"},{"id":161796,"key":"_wc_url_coupons_product_ids","value": [32243,32148,787]}]}}]}],"refunds":[],"_links":{"self":[{"href":"https:\/\/javascriptforwp.com\/wp-json\/wc\/v2\/orders\/32417"}],"collection":[{"href":"https:\/\/javascriptforwp.com\/wp-json\/wc\/v2\/orders"}],"customer":[{"href":"https:\/\/ javascriptforwp.com\/wp-json\/wc\/v2\/customers\/1038"}]}} /wc/v2/orders/32417

Slide 14

Slide 14 text

WooConf 2017 Data Visualization @zgordon Custom WooCommerce API Endpoints 1. Getting Data

Slide 15

Slide 15 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon add_action( 'rest_api_init', function () { register_rest_route( 'jsforwp/v2', '/order/(?P\d+)', [ 'methods' => 'GET', 'callback' => 'jsforwp_get_order', ] ); } );

Slide 16

Slide 16 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon function jsforwp_get_order( $order_id ) { $order = wc_get_order( $order_id ); if ( empty( $order ) ) { return null; } $jsforwp_order['date'] = $order->date_created; $jsforwp_order['id'] = $order->id; $jsforwp_order['title'] = $order->post_title; $jsforwp_order['total'] = $order->order_total; return $jsforwp_order; }

Slide 17

Slide 17 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon { "id": 32417, "date": “2017-10-16T22:36:51", "title": “Order from Test Zakar”, "total": "397.00" } /jsforwp/v1/orders/32417

Slide 18

Slide 18 text

WooConf 2017 Data Visualization @zgordon Custom Database Queries 1. Getting Data

Slide 19

Slide 19 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon function devin_walker_get_total_sales() { global $wpdb; $order_totals = apply_filters( 'woocommerce_reports_sales_overview_order_totals', $wpdb->get_row( "SELECT SUM(meta.meta_value) AS total_sales, COUNT(posts.ID) AS total_orders FROM {$wpdb->posts} AS posts LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id WHERE meta.meta_key = '_order_total' AND posts.post_type = 'shop_order' AND posts.post_status IN ( '" . implode( "','", array( 'wc-completed', 'wc-processing', 'wc-on-hold' ) ) . "' )" ) ); return absint( $order_totals->total_sales ); } https://imdev.in/woocommerce-how-to-get-total-sales-of-all-products-number/

Slide 20

Slide 20 text

WooConf 2017 Data Visualization @zgordon Sometimes Your Data is Not From WooCommerce 1. Getting Data

Slide 21

Slide 21 text

WooConf 2017 Data Visualization @zgordon What Non Woo Data Do You Want? 1. Getting Data

Slide 22

Slide 22 text

WooConf 2017 Data Visualization @zgordon What Data I Mine at JS for WP 1. Getting Data

Slide 23

Slide 23 text

WooConf 2017 Data Visualization @zgordon LoginsLocationTimeOnSiteQuizAttem ptsQuizCompletionsVideosWatched VideosCompletedEnrollmentsDiscus sionGroupsSlackActivityPointsSocial SharingNewsletter 1. Getting Data

Slide 24

Slide 24 text

WooConf 2017 Data Visualization @zgordon You May Need Somewhere to Store Your Data 1. Getting Data

Slide 25

Slide 25 text

WooConf 2017 Data Visualization @zgordon What Non Woo Data Do You Want? 1. Getting Data

Slide 26

Slide 26 text

WooConf 2017 Data Visualization @zgordon 1. Getting the Data You Need 2. Visualization Options with JavaScript 3. How to Integrate Data w Visualization Tangible Takeaways

Slide 27

Slide 27 text

WooConf 2017 Data Visualization @zgordon Some Dataviz Basics 2. Visualization Options

Slide 28

Slide 28 text

WooConf 2017 Data Visualization @zgordon Visual Analysis 
 Best Practices White Paper from Tableau 2. Visualization Options

Slide 29

Slide 29 text

WooConf 2017 Data Visualization @zgordon Does the Visualization Answer Your Questions? 2. Visualization Options

Slide 30

Slide 30 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 31

Slide 31 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 32

Slide 32 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 33

Slide 33 text

WooConf 2017 Data Visualization @zgordon Use Line, Area, and Bar Charts For Trends Over Time. 2. Visualization Options

Slide 34

Slide 34 text

WooConf 2017 Data Visualization @zgordon Use Bar Graph For Comparisons 2. Visualization Options

Slide 35

Slide 35 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 36

Slide 36 text

WooConf 2017 Data Visualization @zgordon Not Just What Graph You Use, But How It Is Designed 2. Visualization Options

Slide 37

Slide 37 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 38

Slide 38 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 39

Slide 39 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 40

Slide 40 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 41

Slide 41 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 42

Slide 42 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 43

Slide 43 text

WooConf 2017 Data Visualization @zgordon Get the White Paper 2. Visualization Options

Slide 44

Slide 44 text

WooConf 2017 Data Visualization @zgordon I Would Recommend Studying Data Visualization (Deeply?) 2. Visualization Options

Slide 45

Slide 45 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 46

Slide 46 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options udacity.com/degrees/nd100/

Slide 47

Slide 47 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 48

Slide 48 text

WooConf 2017 Data Visualization @zgordon Let’s Geek Out 
 Data Visualization Tools 2. Visualization Options

Slide 49

Slide 49 text

WooConf 2017 Data Visualization @zgordon JavaScript Visualization Libraries 2. Visualization Options

Slide 50

Slide 50 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 51

Slide 51 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 52

Slide 52 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 53

Slide 53 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 54

Slide 54 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 55

Slide 55 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 56

Slide 56 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options frontendmasters.com

Slide 57

Slide 57 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 58

Slide 58 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 59

Slide 59 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 60

Slide 60 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 61

Slide 61 text

WooConf 2017 Data Visualization @zgordon At Some Point It Doesn’t Make Sense to Roll Your Own 2. Visualization Options

Slide 62

Slide 62 text

WooConf 2017 Data Visualization @zgordon Visualization Services 2. Visualization Options

Slide 63

Slide 63 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 64

Slide 64 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 65

Slide 65 text

WooConf 2017 Data Visualization @zgordon WordPress Specific Data Visualization Options 2. Visualization Options

Slide 66

Slide 66 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 67

Slide 67 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 68

Slide 68 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 69

Slide 69 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 70

Slide 70 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 71

Slide 71 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 72

Slide 72 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 73

Slide 73 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 74

Slide 74 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 75

Slide 75 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 76

Slide 76 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 77

Slide 77 text

WooConf 2017 Data Visualization @zgordon 2. Visualization Options

Slide 78

Slide 78 text

WooConf 2017 Data Visualization @zgordon 1. Getting the Data You Need 2. Visualization Options with JavaScript 3. How to Integrate Data w Visualization Tangible Takeaways

Slide 79

Slide 79 text

WooConf 2017 Data Visualization @zgordon Do You Need Help with Data Research? 3. Integration

Slide 80

Slide 80 text

WooConf 2017 Data Visualization @zgordon Should You Code Something Yourself? 3. Integration

Slide 81

Slide 81 text

WooConf 2017 Data Visualization @zgordon Build a Data Driven* Business 3. Integration

Slide 82

Slide 82 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 83

Slide 83 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 84

Slide 84 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 85

Slide 85 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 86

Slide 86 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 87

Slide 87 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 88

Slide 88 text

WooConf 2017 Data Visualization @zgordon Talk to These Folks

Slide 89

Slide 89 text

WooConf 2017 Data Visualization @zgordon 1. Getting the Data You Need 2. Visualization Options with JavaScript 3. How to Integrate Data w Visualization Tangible Takeaways

Slide 90

Slide 90 text

WooConf 2017 Data Visualization @zgordon Before We $_GET We Should Identify() 1. Getting Data

Slide 91

Slide 91 text

WooConf 2017 Data Visualization @zgordon let data = new Indentify( erything ) 1. Getting Data

Slide 92

Slide 92 text

WooConf 2017 Data Visualization @zgordon let data = Indentify( Woo, more ) 1. Getting Data

Slide 93

Slide 93 text

WooConf 2017 Data Visualization @zgordon Sometimes You Don’t Know It Until You See It 1. Getting Data

Slide 94

Slide 94 text

WooConf 2017 Data Visualization @zgordon Default WooCommerce API Endpoints 1. Getting Data

Slide 95

Slide 95 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon /orders/ /order//notes /orders//refunds /products/ /products//variations /products/attributes/ /products/attributes//terms /products/categories/ /products/shipping_classes/ /products/tags/ /reports/ /reports/sales /reports/top_sellers /taxes/ /taxes/classes /webhooks/ /settings /settings/group/ /payment_gateways /shipping/zones/ /shipping/zones//locations /shipping/zones//methods /shipping_methods/ /system_status/ /system_status/tools/

Slide 96

Slide 96 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon /orders/ /orders//refunds /reports/ /reports/sales /reports/top_sellers /webhooks/

Slide 97

Slide 97 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon {“id”:32417,"parent_id": 0,"number":"32417","order_key":"wc_order_59e534837411c","created_via":"checkout","version":"3.2.1","status":"completed","currency":"USD","date_created":"2017-10-16T22:36:51","date_created_gmt":"2017-10-16T22:36:51","date_modifie d":"2017-10-16T22:36:51","date_modified_gmt":"2017-10-16T22:36:51","discount_total":"397.00","discount_tax":"0.00","shipping_total":"0.00","shipping_tax":"0.00","cart_tax":"0.00","total":"0.00","total_tax":"0.00","prices_include_tax":false,"c ustomer_id":1038,"customer_ip_address":"24.128.171.54","customer_user_agent":"mozilla\/5.0(macintosh;intelmacosx10_12_6)applewebkit\/537.36(khtml,likegecko)chrome\/61.0.3163.100safari\/537.36","customer_note":"","billing": {"first_name":"Test","last_name":"Person","company":"","address_1":"","address_2":"","city":"Detroit","state":"MI","postcode":"","country":"US","email":"[email protected]","phone":""},"shipping": {"first_name":"","last_name":"","company":"","address_1":"","address_2":"","city":"","state":"","postcode":"","country":""},"payment_method":"","payment_method_title":"","transaction_id":"","date_paid":"2017-10-16T22:36:51","date_paid_g mt":"2017-10-16T22:36:51","date_completed":"2017-10-16T22:36:51","date_completed_gmt":"2017-10-16T22:36:51","cart_hash":"8022970d631d1c73a2aee9b0c2493964","meta_data":[{"id": 162137,"key":"_woocommerce_t4m_discount_type","value":""},{"id":162138,"key":"_woocommerce_t4m_discount_coeffs","value":"null"},{"id":162139,"key":"_fue_recorded","value":"1"},{"id": 162140,"key":"_download_permissions_granted","value":"yes"},{"id":162144,"key":"wpf_complete","value":"1"},{"id":162145,"key":"_wcpdf_invoice_date","value":"1508193411"},{"id": 162146,"key":"_wcpdf_invoice_date_formatted","value":"2017-10-1622:36:51"},{"id":162147,"key":"_wcpdf_invoice_number","value":"Invoice00067"},{"id":162148,"key":"_wcpdf_invoice_number_data","value":{"number": 67,"formatted_number":"Invoice00067","prefix":"Invoice","suffix":"","document_type":"invoice","order_id":32417,"padding":"5"}},{"id":162149,"key":"_order_status_emails_queued","value":"1"},{"id": 162150,"key":"_order_stock_reduced","value":"yes"}],"line_items":[{"id":2087,"name":"1YrCohortProgramUpgrade","product_id":32243,"variation_id":0,"quantity": 1,"tax_class":"","subtotal":"397.00","subtotal_tax":"0.00","total":"0.00","total_tax":"0.00","taxes":[],"meta_data":[],"sku":"COHORT-UPGRADE","price":0}],"tax_lines":[],"shipping_lines":[],"fee_lines":[],"coupon_lines":[{"id":2088,"code":"zac- testeroo","discount":"397","discount_tax":"0","meta_data":[{"id":15170,"key":"coupon_data","value":{"id":32265,"code":"zac-testeroo","amount":"100","date_created":{"date":"2017-10-1604:05:12.000000","timezone_type": 1,"timezone":"+00:00"},"date_modified":{"date":"2017-10-1622:04:57.000000","timezone_type" 1,"timezone":"+00:00"},"date_expires":null,"discount_type":"percent","description":"Youknowf o rbangingonthingswithhammersandthesuch","usage_count": 46,"individual_use":false,"product_ids":[],"excluded_product_ids":[],"usage_limit":0,"usage_limit_per_user": 0,"limit_usage_to_x_items":null,"free_shipping":false,"product_categories":[],"excluded_product_categories":[],"exclude_sale_items":false,"minimum_amount":"","maximum_amount":"","email_restrictions": ["[email protected]","[email protected]"],"used_by": ["1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","4","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038" ,"1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038","1038"],"virtual":false,"meta_data":[{"id":157976,"key":"tcb2_ready","value":"1"},{"id":157979,"key":"_publicize_pending","value":"1"},{"id": 158002,"key":"_learndash_plus","value":{"protect":false,"selectedlevels":[]}},{"id":158003,"key":"wpf-settings-woo","value":{"apply_tags":["COUPON-ZAC-TESTEROO"]}},{"id":161793,"key":"_wc_url_coupons_unique_url","value":"coupon\/zac- gets-shit-free"},{"id":161794,"key":"_wc_url_coupons_redirect_page","value":"5744"},{"id":161795,"key":"_wc_url_coupons_redirect_page_type","value":"page"},{"id":161796,"key":"_wc_url_coupons_product_ids","value": [32243,32148,787]}]}}]}],"refunds":[],"_links":{"self":[{"href":"https:\/\/javascriptforwp.com\/wp-json\/wc\/v2\/orders\/32417"}],"collection":[{"href":"https:\/\/javascriptforwp.com\/wp-json\/wc\/v2\/orders"}],"customer":[{"href":"https:\/\/ javascriptforwp.com\/wp-json\/wc\/v2\/customers\/1038"}]}} /wc/v2/orders/32417

Slide 98

Slide 98 text

WooConf 2017 Data Visualization @zgordon Custom WooCommerce API Endpoints 1. Getting Data

Slide 99

Slide 99 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon add_action( 'rest_api_init', function () { register_rest_route( 'jsforwp/v2', '/order/(?P\d+)', [ 'methods' => 'GET', 'callback' => 'jsforwp_get_order', ] ); } );

Slide 100

Slide 100 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon function jsforwp_get_order( $order_id ) { $order = wc_get_order( $order_id ); if ( empty( $order ) ) { return null; } $jsforwp_order['date'] = $order->date_created; $jsforwp_order['id'] = $order->id; $jsforwp_order['title'] = $order->post_title; $jsforwp_order['total'] = $order->order_total; return $jsforwp_order; }

Slide 101

Slide 101 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon { "id": 32417, "date": “2017-10-16T22:36:51", "title": “Order from Test Zakar”, "total": "397.00" } /jsforwp/v1/orders/32417

Slide 102

Slide 102 text

WooConf 2017 Data Visualization @zgordon Custom Database Queries 1. Getting Data

Slide 103

Slide 103 text

WooConf 2017 Data Visualization @zgordon Data Visualization WooConf 2017 @zgordon function devin_walker_get_total_sales() { global $wpdb; $order_totals = apply_filters( 'woocommerce_reports_sales_overview_order_totals', $wpdb->get_row( "SELECT SUM(meta.meta_value) AS total_sales, COUNT(posts.ID) AS total_orders FROM {$wpdb->posts} AS posts LEFT JOIN {$wpdb->postmeta} AS meta ON posts.ID = meta.post_id WHERE meta.meta_key = '_order_total' AND posts.post_type = 'shop_order' AND posts.post_status IN ( '" . implode( "','", array( 'wc-completed', 'wc-processing', 'wc-on-hold' ) ) . "' )" ) ); return absint( $order_totals->total_sales ); } https://imdev.in/woocommerce-how-to-get-total-sales-of-all-products-number/

Slide 104

Slide 104 text

WooConf 2017 Data Visualization @zgordon Sometimes Your Data is Not From WooCommerce 1. Getting Data

Slide 105

Slide 105 text

WooConf 2017 Data Visualization @zgordon What Non Woo Data Do You Want? 1. Getting Data

Slide 106

Slide 106 text

WooConf 2017 Data Visualization @zgordon What Data I Mine at JS for WP 1. Getting Data

Slide 107

Slide 107 text

WooConf 2017 Data Visualization @zgordon LoginsLocationTimeOnSiteQuizAttem ptsQuizCompletionsVideosWatched VideosCompletedEnrollmentsDiscus sionGroupsSlackActivityPointsSocial SharingNewsletter 1. Getting Data

Slide 108

Slide 108 text

WooConf 2017 Data Visualization @zgordon You May Need Somewhere to Store Your Data 1. Getting Data

Slide 109

Slide 109 text

WooConf 2017 Data Visualization @zgordon What Non Woo Data Do You Want? 1. Getting Data

Slide 110

Slide 110 text

WooConf 2017 Data Visualization @zgordon Visualizing Data is a Meditation To Close

Slide 111

Slide 111 text

WooConf 2017 Data Visualization @zgordon Meditate So You Can Better Visualize To Close

Slide 112

Slide 112 text

WooConf 2017 Data Visualization @zgordon Thank You javascriptforwp.com/wooconf