<?php
/**
* Description of A2W_Woocommerce
*
* @author andrey
*/
if (!class_exists('A2W_Woocommerce')) {
class A2W_Woocommerce
{
private static $active_plugins;
private $attachment_model;
private $reviews_model;
private $helper;
private $product_change_model;
public function __construct()
{
$this->attachment_model = new A2W_Attachment();
$this->reviews_model = new A2W_Review();
$this->helper = new A2W_Helper();
$this->product_change_model = new A2W_ProductChange();
}
public static function is_woocommerce_installed()
{
if (!self::$active_plugins) {
self::$active_plugins = (array) get_option('active_plugins', array());
if (is_multisite()) {
self::$active_plugins = array_merge(self::$active_plugins, get_site_option('active_sitewide_plugins', array()));
}
}
return in_array('woocommerce/woocommerce.php', self::$active_plugins) || array_key_exists('woocommerce/woocommerce.php', self::$active_plugins);
}
public function build_steps($product)
{
$steps = array('init');
$override_product = !empty($product['override_product_id']) && $product['override_product_id'];
$override_title_description = isset($product['override_title_description']) && $product['override_title_description'];
$override_images = isset($product['override_images']) && $product['override_images'];
$images_to_preload = A2W_Utils::get_all_images_from_product($product, true, !$override_product || $override_images, !$override_product || $override_title_description);
foreach ($images_to_preload as $img_id => $image) {
$steps[] = 'preload_images#' . $img_id;
}
if ($this->need_import_variations($product)) {
$steps[] = 'variations#attributes';
foreach ($product['sku_products']['variations'] as $variation) {
$steps[] = 'variations#variation#' . $variation['id'];
};
$steps[] = 'variations#sync';
} else {
$steps[] = 'variations';
}
$images_data = $this->prepare_product_images($product);
if ($images_data['thumb']) {
$steps[] = 'images#' . md5($images_data['thumb']);
}
foreach ($images_data['images'] as $image_url) {
$steps[] = 'images#' . md5($image_url);
}
$steps[] = 'description';
$steps[] = 'finishing';
return $steps;
}
private function need_import_variations($product, $product_type = false)
{
$product_type = $product_type ? $product_type : ((isset($product['product_type']) && $product['product_type']) ? $product['product_type'] : a2w_get_setting('default_product_type', 'simple'));
return !a2w_check_defined('A2W_DO_NOT_IMPORT_VARIATIONS') &&
$product_type !== "external" &&
!empty($product['sku_products']['variations']) &&
count($product['sku_products']['variations']) > 1;
}
private function is_product_exist($product_id)
{
global $wpdb;
return !!$wpdb->get_row($wpdb->prepare("SELECT p.ID FROM $wpdb->posts p WHERE p.ID = %d and p.post_type='product' LIMIT 1", $product_id));
}
private function prepare_product_images($product)
{
$override_product = !empty($product['override_product_id']) && $product['override_product_id'];
$override_images = isset($product['override_images']) && $product['override_images'];
$thumb_url = '';
$tmp_all_images = A2W_Utils::get_all_images_from_product($product);
if (isset($product['thumb_id'])) {
foreach ($tmp_all_images as $img_id => $img) {
if ($img_id === $product['thumb_id'] && !in_array($img_id, $product['skip_images'])) {
$thumb_url = A2W_Utils::clear_url($img['image']);
break;
}
}
}
$result = array('thumb' => '', 'images' => array());
if ((!$override_product || $override_images) && isset($product['images'])) {
$image_to_load = array();
foreach ($product['images'] as $image) {
if (!in_array(md5($image), $product['skip_images'])) {
$image_to_load[md5($image)] = $image;
}
}
foreach ($product['tmp_copy_images'] as $img_id => $source) {
if (isset($tmp_all_images[$img_id]) && !in_array($img_id, $product['skip_images'])) {
$image_to_load[$img_id] = $tmp_all_images[$img_id]['image'];
}
}
foreach ($product['tmp_move_images'] as $img_id => $source) {
if (isset($tmp_all_images[$img_id]) && !in_array($img_id, $product['skip_images'])) {
$image_to_load[$img_id] = $tmp_all_images[$img_id]['image'];
}
}
// if not thumb not checked, check first available image
if (!$thumb_url && !empty($image_to_load)) {
$tmp_images = array_values($image_to_load);
$thumb_url = array_shift($tmp_images);
}
$result = array('thumb' => $thumb_url, 'images' => $image_to_load);
}
return $result;
}
public function add_product($product, $params = array())
{
if (!A2W_Woocommerce::is_woocommerce_installed()) {
return A2W_ResultBuilder::buildError("Woocommerce is not installed");
}
global $wpdb;
$step = isset($params['step']) ? $params['step'] : false;
$product_id = isset($params['product_id']) ? $params['product_id'] : false;
$override_product = !empty($product['override_product_id']) && $product['override_product_id'];
$override_title_description = isset($product['override_title_description']) && $product['override_title_description'];
$override_images = isset($product['override_images']) && $product['override_images'];
$override_supplier = isset($product['override_supplier']) && $product['override_supplier'];
$override_variations = !empty($product['override_variations']) ? $product['override_variations'] : array();
if ($override_product && $override_supplier) {
$product['skip_vars'] = array();
$used_vars = array_map(function ($v) {return $v['external_variation_id'];}, $override_variations);
foreach ($product['sku_products']['variations'] as $var) {
if (!in_array($var['id'], $used_vars)) {
$product['skip_vars'][] = $var['id'];
}
}
}
if ($override_product) {
$product_id = $product['override_product_id'];
}
$product_type = (isset($product['product_type']) && $product['product_type']) ? $product['product_type'] : a2w_get_setting('default_product_type', 'simple');
$product_status = (isset($product['product_status']) && $product['product_status']) ? $product['product_status'] : a2w_get_setting('default_product_status', 'publish');
$post_title = isset($product['title']) && $product['title'] ? $product['title'] : "Product " .
没有合适的资源?快使用搜索试试~ 我知道了~
【WordPress插件】2022年最新版完整功能demo+插件1.19.16.zip
共402个文件
php:223个
js:81个
png:38个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 129 浏览量
2022-03-31
00:49:58
上传
评论
收藏 2.88MB ZIP 举报
温馨提示
"【WordPress插件】2022年最新版完整功能demo+插件1.19.16 AliExpress Dropshipping Business plugin for WooCommerce Woocommerce的Aliexpress Dropshipping Business Plugin" ---------- 泰森云每天更新发布最新WordPress主题、HTML主题、WordPress插件、shopify主题、opencart主题、PHP项目源码、安卓项目源码、ios项目源码,更有超10000个资源可供选择,如有需要请站内联系。
资源推荐
资源详情
资源评论
收起资源包目录
【WordPress插件】2022年最新版完整功能demo+插件1.19.16.zip (402个子文件)
bootstrap.css 149KB
bootstrap.min.css 118KB
admin_style.css 66KB
admin_style-rtl.css 63KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
select2.css 18KB
spectrum.css 15KB
select2.min.css 15KB
wc_pe_style.css 13KB
wc_ol_style.css 7KB
frontend.css 5KB
jquery.fancybox.css 5KB
wc_pl_style-rtl.css 4KB
wc_pl_style.css 3KB
jquery.fancybox-buttons.css 2KB
comment_widget.css 1001B
wc_order_edit.css 946B
jquery.fancybox-thumbs.css 789B
frontend_style.css 592B
style.css 0B
ProximaNovaRegular.eot 38KB
ProximaNovaBold.eot 37KB
glyphicons-halflings-regular.eot 20KB
fancybox_loading@2x.gif 14KB
fancybox_loading.gif 6KB
blank.gif 43B
ali2woo_box_268.jpg 35KB
ali_select_icon.jpg 1KB
fabric.js 783KB
tui-image-editor.js 385KB
fabric.min.js 285KB
select2.full.js 164KB
select2.js 144KB
admin_script.js 108KB
tui-image-editor.min.js 99KB
spectrum.js 80KB
select2.full.min.js 73KB
bootstrap.js 70KB
select2.min.js 65KB
jquery.fancybox.js 50KB
bootstrap.min.js 36KB
wc_pe_script.js 25KB
tui-code-snippet.min.js 23KB
jquery.fancybox.pack.js 23KB
orderfulfill.js 21KB
shipping_popup.js 20KB
wc_ol_script.js 11KB
shipping_select.js 11KB
wc_pl_script.js 10KB
jquery.lazyload.js 9KB
sprintf.js 7KB
comment_widget.js 7KB
jquery.fancybox-media.js 5KB
jquery.fancybox-thumbs.js 4KB
jquery.fancybox-buttons.js 3KB
admin_tools.js 3KB
FileSaver.min.js 2KB
jquery.mousewheel-3.0.6.pack.js 1KB
cs.js 1KB
sk.js 1KB
el.js 1KB
ru.js 1KB
hi.js 1KB
uk.js 1KB
sr-Cyrl.js 1KB
km.js 1KB
fa.js 1006B
mk.js 981B
he.js 953B
th.js 953B
sr.js 940B
pl.js 927B
lt.js 915B
ro.js 911B
bg.js 908B
fr.js 904B
nl.js 898B
ar.js 889B
ca.js 878B
it.js 878B
lv.js 874B
es.js 873B
pt.js 861B
ko.js 856B
pt-BR.js 855B
ja.js 850B
eu.js 846B
hr.js 841B
en.js 829B
da.js 820B
vi.js 803B
gl.js 802B
ms.js 793B
sv.js 788B
nb.js 787B
de.js 777B
et.js 777B
is.js 775B
zh-CN.js 771B
共 402 条
- 1
- 2
- 3
- 4
- 5
资源评论
Lee达森
- 粉丝: 1566
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Ollama安装文件,从官网下载
- 数据库编程中Cursor(游标)的概念、功能与应用场景解析
- 通过 OpenCV 加载视频文件 1.mp4,并使用 YOLOv8 模型进行姿态检测 它逐帧处理视频,检测人体关键点并绘制关键点及其连接 具体来说,代码首先加载 YOLOv8 模型并定义了关键点之间的
- 1ef69c3e3bfa6ebc829f03a871190d69.part01
- 9.6.0.3_1d9317597fbe653ff1d29cfaacfca6b8.apk
- lv_0_20250204142911.mp4
- NASA锂电池数据集(补).zip
- 面向对象课程设计基于Java+MySQL+JDBC+JavaSwing的图书信息管理系统源代码+数据库+课程设计报告
- DHCP服务租约和续约过程流程图
- 1ef69c3e3bfa6ebc829f03a871190d69.part02
- 1ef69c3e3bfa6ebc829f03a871190d69.part03
- 1ef69c3e3bfa6ebc829f03a871190d69.part04
- 基于Servlet+Jsp+MySQL的艺术作品展览管理系统源代码+数据库
- 1ef69c3e3bfa6ebc829f03a871190d69.part05
- 1ef69c3e3bfa6ebc829f03a871190d69.part06
- 财务收支数据年终报表-可视化图表.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功