public static function loadAllItemsFromBasket() { // load all items from basket $items = array(); $itemids = RoleTaxonomy::getCurrentBasket(); // get_user_meta(get_current_user_id(), 'itembasket', true); if ($itemids == null) { $itemids = array(); } $itemids_new = array(); foreach ($itemids as $item_id) { $post = get_post($item_id); if ($post == null) { continue; } $item = null; if ($post->post_type == 'itemsc') { $item = new EAL_ItemSC(); } if ($post->post_type == 'itemmc') { $item = new EAL_ItemMC(); } if ($item == null) { continue; } $item->loadById($item_id); if (RoleTaxonomy::getCurrentRoleDomain()["name"] != "" && $item->domain != RoleTaxonomy::getCurrentRoleDomain()["name"]) { continue; } array_push($items, $item); array_push($itemids_new, $item_id); } RoleTaxonomy::setCurrentBasket($itemids_new); // update_user_meta (get_current_user_id(), 'itembasket', $itemids_new); return $items; }
function custom_bulk_action() { if ($_REQUEST["post_type"] != $this->type) { return; } global $wpdb; $wp_list_table = _get_list_table('WP_Posts_List_Table'); if ($wp_list_table->current_action() == 'view') { if (substr($_REQUEST['post_type'], 0, 4) == 'item') { $sendback = add_query_arg('itemids', $_REQUEST['post'], 'edit.php?page=view&post_type=itembasket'); wp_redirect($sendback); exit; } if ($_REQUEST['post_type'] == 'learnout') { $sendback = add_query_arg('learnoutids', $_REQUEST['post'], 'edit.php?page=view&post_type=itembasket'); wp_redirect($sendback); exit; } if ($_REQUEST['post_type'] == 'review') { $sendback = add_query_arg('reviewids', $_REQUEST['post'], 'edit.php?page=view&post_type=itembasket'); wp_redirect($sendback); exit; } } if ($wp_list_table->current_action() == 'mark' || $wp_list_table->current_action() == 'unmark') { if (substr($_REQUEST['post_type'], 0, 4) == 'item') { /* get array of postids */ $postids = $_REQUEST['post']; if (!is_array($postids)) { $postids = [$postids]; } if (count($postids) > 0) { $sql = sprintf("UPDATE {$wpdb->prefix}eal_item SET flag = %d WHERE id IN (%s)", $wp_list_table->current_action() == 'mark' ? 1 : 0, join(",", $postids)); $wpdb->query($sql); } } } if ($wp_list_table->current_action() == 'setpublished' || $wp_list_table->current_action() == 'setpending' || $wp_list_table->current_action() == 'setdraft') { $status = "publish"; if ($wp_list_table->current_action() == 'setpending') { $status = "pending"; } if ($wp_list_table->current_action() == 'setdraft') { $status = "draft"; } /* get array of postids */ $postids = $_REQUEST['post']; if (!is_array($postids)) { $postids = [$postids]; } if (count($postids) > 0) { $sql = sprintf("UPDATE {$wpdb->posts} SET post_status = '%s' WHERE id IN (%s)", $status, join(",", $postids)); $wpdb->query($sql); } } /* Add Items to Basket */ if ($wp_list_table->current_action() == 'add_to_basket') { /* get array of postids */ $postids = $_REQUEST['post']; if (!is_array($postids)) { $postids = [$postids]; } $basket_old = RoleTaxonomy::getCurrentBasket(); // get_user_meta(get_current_user_id(), 'itembasket', true); if ($basket_old == null) { $basket_old = array(); } if (count($basket_old) == 0) { $basket_old = [-1]; } // dummy basket to make sure SQLL works /* get Items from Learning Outcomes */ $sql = "SELECT P.id FROM {$wpdb->prefix}eal_item I JOIN {$wpdb->prefix}posts P ON (P.ID = I.ID) WHERE P.post_parent = 0 AND "; $sql .= sprintf('( %1$s IN (%2$s) OR I.id IN (%3$s) )', $_REQUEST['post_type'] == 'learnout' ? 'I.learnout_id' : 'I.id', join(", ", $postids), join(", ", $basket_old)); $itemids = $wpdb->get_col($sql); RoleTaxonomy::setCurrentBasket($itemids); // $x = update_user_meta( get_current_user_id(), 'itembasket', $itemids); } if ($wp_list_table->current_action() == 'remove_from_basket') { $b_old = RoleTaxonomy::getCurrentBasket(); // get_user_meta(get_current_user_id(), 'itembasket', true); $b_new = $b_old; if (isset($_REQUEST["post"])) { $b_new = array_diff($b_old, $_REQUEST['post']); } if ($_REQUEST['itemid'] != null) { $b_new = array_diff($b_old, [$_REQUEST['itemid']]); } if ($_REQUEST['itemids'] != null) { $b_new = array_diff($b_old, $_REQUEST['itemids']); } RoleTaxonomy::setCurrentBasket($b_new); // $x = update_user_meta( get_current_user_id(), 'itembasket', $b_new, $b_old ); } }