添加带有特色图像的简单Woocommerce产品前端和带有短代码的gallery

添加带有特色图像的简单Woocommerce产品前端和带有短代码的gallery,woocommerce,frontend,product,gallery,Woocommerce,Frontend,Product,Gallery,这里是从前端添加产品的完整来源。如果有任何遗漏或问题,请告诉我。 添加快捷码('show_product'、'show_product_form'); /** *将产品提交到post type prodcut *@return插入产品数据 *@自1.0以来 *@作者瓦西姆 */ 功能展示产品表格($atts){ 如果(isset($\u POST['gg'])和(&$\u POST['gg'])!=“”){ 全球$wpdb,$woocommerce; 全局$当前用户 $name

这里是从前端添加产品的完整来源。如果有任何遗漏或问题,请告诉我。 添加快捷码('show_product'、'show_product_form'); /** *将产品提交到post type prodcut
*@return插入产品数据 *@自1.0以来 *@作者瓦西姆 */ 功能展示产品表格($atts){ 如果(isset($\u POST['gg'])和(&$\u POST['gg'])!=“”){ 全球$wpdb,$woocommerce; 全局$当前用户

        $name = $_POST['title'];
        $product_desc  = $_POST['content'];
        $productprice = $_POST['price'];
        $post = array(
            'post_type' => 'product',
            'post_author'       =>  $current_user->ID,
            'post_content' => $product_desc, 
            'post_title'   => $name,
            'post_status'   => 'publish',
            'tax_input' => array(
                    'product_cat' => array( 15 )
             ),
        );
        $id = wp_insert_post( $post);
        // Setting the product type
        wp_set_object_terms( $id, 'simple', 'product_type' ); 
        if($id){
            //update_post_meta($id, '_regular_price', $productprice);
            // Get the WC_Product Object instance
            $product = wc_get_product( $id );

            // Set the product active price (regular)
            $product->set_price( $productprice );
            $product->set_regular_price( $productprice ); // To be sure

            // Save product data (sync data and refresh caches)
            $product->save();
            update_post_meta( $id, '_visibility', 'visible' );
            update_post_meta( $id, '_stock_status', 'instock' );
            update_post_meta($id, 'post_status', 'publish');

                if ( ! empty( $_FILES['my_file_upload'] )  ) {
                    $files = $_FILES['my_file_upload'];
                    foreach ($files['name'] as $key => $value){
                        if ($files['name'][$key]){
                            $file = array(
                            'name' => $files['name'][$key],
                            'type' => $files['type'][$key],
                            'tmp_name' => $files['tmp_name'][$key],
                            'error' => $files['error'][$key],
                            'size' => $files['size'][$key]
                            );
                        }
                        $_FILES = array("my_file_upload" => $file);
                        $i=1;
                       // $vv = "";
                            foreach ($_FILES as $file => $array) {
                                  if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) __return_false();
                                    require_once(ABSPATH . "wp-admin" . '/includes/image.php');
                                    require_once(ABSPATH . "wp-admin" . '/includes/file.php');
                                    require_once(ABSPATH . "wp-admin" . '/includes/media.php');
                                    $attachment_id = media_handle_upload($file, $id);
                                    $vv .= $attachment_id . ",";
                                    $i++;
                            }
                            update_post_meta($id, '_product_image_gallery',  $vv);
                            set_post_thumbnail($id, $attachment_id, $vv);
                            
                    }
                }
            echo '<div style="color:green;">Product added sucess</div>';
        }
    }

 /* initialization /HTML Product Form */
ob_start();
    require_once 'inc/my-custom-function.php';
return ob_get_clean();
}

create new filemy-custom-function.php for html and place below code 
<div class="col-md-6">
<form method = "post" enctype="multipart/form-data">
    <div class="form-group">
        <label for="title">Product Title</label>
         <input type="text" class="form-control" name="title" placeholder="ProductTitle" required="required">
    </div>
    <div class="form-group">
        <label for="description">Desription</label>
         <textarea name="content" class="form-control" placeholder="Description" required="required"></textarea>
    </div>
    <div class="form-group">  
    <label for="exampleInputEmail1">Product Price</label>  
        <input type="number" class="form-control" name="price" placeholder="Enter Price" required="required">
    </div>
    <div class="form-group"> 
        Choose Product Gallery<input type="file" class="form-control" name="my_file_upload[]" multiple="multiple" required="required">
    </div>
    <input type="submit" name="gg">
</form>
</div>
$name=$\u POST['title'];
$product_desc=$_POST['content'];
$productprice=$_POST['price'];
$post=数组(
“post_类型”=>“产品”,
“post\u author'=>$current\u user->ID,
“发布内容”=>$product\U desc,
“post_title”=>$name,
“发布状态”=>“发布”,
“税务输入”=>数组(
“产品类别”=>阵列(15)
),
);
$id=wp\u insert\u post($post);
//设置产品类型
wp_set_object_术语($id,'simple,'product_type');
如果($id){
//更新发布元($id,'u常规价格',$productprice);
//获取WC_产品对象实例
$product=wc\U get\U product($id);
//设置产品有效价格(常规)
$product->set_价格($productprice);
$product->set_常规_价格($productprice);//当然
//保存产品数据(同步数据和刷新缓存)
$product->save();
更新发布元($id,''.'可见性','可见');
更新后置元($id、'u库存状态'、'instock');
更新发布元数据($id,“发布状态”,“发布”);
如果(!空($_文件['my_文件上传]])){
$files=$\u files['my\u file\u upload'];
foreach($files['name']作为$key=>$value){
如果($files['name'][$key]){
$file=array(
'name'=>$files['name'][$key],
'type'=>$files['type'][$key],
'tmp_name'=>$files['tmp_name'][$key],
'error'=>$files['error'][$key],
'size'=>$files['size'][$key]
);
}
$\u FILES=array(“我的文件上传”=>$file);
$i=1;
//$vv=“”;
foreach($\作为$file=>$array的文件){
如果($\u FILES[$file]['error']!==上传错误确定)\u返回错误();
require_once(ABSPATH.wp admin.'/includes/image.php');
require_once(ABSPATH.wp admin.'/includes/file.php');
require_once(ABSPATH.wp admin.'/includes/media.php');
$attachment\u id=media\u handle\u upload($file,$id);
$vv.=$attachment_id.“,”;
$i++;
}
更新发布元数据($id,''u产品\图像\图库',$vv);
设置帖子缩略图($id,$attachment\u id,$vv);
}
}
echo“产品添加成功”;
}
}
/*初始化/HTML产品表单*/
ob_start();
需要一次'inc/my custom function.php';
返回ob_get_clean();
}
为html创建新的filemy-custom-function.php,并将其放在代码下面
产品名称
描述
产品价格
选择产品库